Servlet+MySQL与前后端部署到tomcat

Posted on 2023-01-30 13:26  Capterlliar  阅读(53)  评论(0编辑  收藏  举报

前后端调通后可以把数据存到数据库里了

1. 下载并配置SQL

Windows中MySQL8详细安装教程

2. net start/stop mysql

启动/关闭mysql,在管理员身份下运行

3. mysql的可视化软件

phpMyAdmin

原来用xampp时用的,在浏览器就能管理,很方便。但现在改java了,并不想把它配置进tomcat里(

VSCode的MySQL插件

单增删改查和界面完胜其他所有GUI,好用得令人流泪

4. 导入sql

把前年的表从原来的sql里导出来,导入新的数据库里时遇到:Failed to open file '***.sql', error: 2

可能是中文目录的锅,换个目录就好了。

5. Java对应依赖

Java MySQL 连接

具体连接对着抄就好了

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.31</version>
        </dependency>

6. Java找不到?Tomcat找不到!

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver 找不到jar包的问题,路径问题

同样的,servlet里用到别的包,比如GSON,也要放到tomcat下。

7. 执行SQL语句的三种方法

execute方法,解决java.sql.SQLException: Can not issue executeUpdate() or executeLargeUpdate() for SELECTs

java中执行Sql语句的Statement详细用法

8. 部署

前后端都在端口8080下。

8.1 部署前端

作以下修改:

1. config/index.js

dev和build下assetsPublicPath: './'

2. build/webpack.prod.conf.js

removeAttributeQuotes: false

3. main.js

if (process.env.NODE_ENV === 'development') {
  ROOT = "/api";//开发环境下的代理地址,解决本地跨域
} else {
  ROOT = 'http://localhost:8080/somewords_war_exploded/';    //生产环境下的地址
}

然后npm run build获得dist文件夹,将其复制到tomcat的webapp下。dist这个文件夹也可以改名啦。

8.2 部署后端

1. tomcat打开和关闭配置

bin/startup.bat

编辑,在开头加上

SET JAVA_HOME=D:\Java\SDK(JDK目录
SET TOMCAT_HOME=D:\apache-tomcat-9.0.71(Tomcat目录

 shutdown.bat也加上

2. 配置用户名和密码

conf/tomcat-users.xml

<tomcat-user>下加上:

    <role rolename="manager-gui"/>
    <user username="admin" password="123456" roles="tomcat,manager-gui"/>

3. 配置项目外文件夹

conf/server.xml

<Host>下加上:

<Context docBase="真实目录" path="URL里显示的目录"></Context>

4. tomcat日志乱码问题

conf/logging.properties

把里面的utf-8全改成GBK

9. tomcat现状

双击startup.bat,启动tomcat,不要关掉小黑窗

打开localhost:8080,看到抽象的cat

 

 点击Manager App,输入之前设置的账号密码:

 

可以看到当前服务器下的资源。

点击somewords2,可以看到之前写的页面。

somewords_war_exploded是servlet

somewords/temp和somewords/final是临时存储图片和最终存储图片的地方,映射到本机D盘某个位置

双击shutdown.bat,结束服务。