本文记录在不使用框架的情况下(基本功别忘了),在 IDEA 中开发 Web 工程以及最后发布到服务器的过程
JAVA Web 工程(1.新建项目
)
JAVA Web 工程(2.设置目录
)
一般设置好项目文件夹所在,名字按需要起就可以,其他可以用缺省值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.fakeproject</groupId>
<artifactId>demo1</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 设置打包方式 -->
<packaging>war</packaging>
<properties>
<!-- 设置编码方式 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<!-- 设置 JDK 版本 -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- 添加 servlet 依赖 -->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
|
这里使用 v1.8 版,是因为如果使用 v11 版,后面部署的时候会因为 CentOS7 官方 yum 源的 Tomcat 是 tomcat-7.0.76-16.el7_9.noarch 版,作为依赖安装的是 java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64,从而导致 “编译版本高于运行版本” 报错。
在 /src/main
下创建 webapp 目录
JAVA Web 工程(3.新建目录
)
因为前面在 pom.xml 配置文件中设置了打包方式为 war 包,/src/main/webapp
目录会自动带上 Web 资源目录(Web Resource Directory)标记
JAVA Web 工程(4.webapp
)
打开项目配置
JAVA Web 工程(5.项目设置
)
按图示创建 web.xml 配置文件
(注意看黄框部分,就是上一步骤,webapp 会被标记为 Web 资源目录的原因)
JAVA Web 工程(6.创建 web.xml 配置文件
)
注意按需要修改路径
JAVA Web 工程(7.修改 web.xml 路径
)
最后效果
JAVA Web 工程(8.效果
)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!-- src/main/webapp/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
<h3>Hello World !</h3>
</body>
</html>
|
JAVA Web 工程(9.添加 Tomcat
)
添加 “工件”
JAVA Web 工程(10.添加工件
)
开发测试选第二个,生产发布选第一个
JAVA Web 工程(11.选第二个
)
Application context 这里可以把路径缩减一下
JAVA Web 工程(12.简化一下路径
)
这里基本按默认就可以
JAVA Web 工程(13.默认设置
)
启动 Tomcat
JAVA Web 工程(14.启动测试
)
后台显示启动、部署成功
JAVA Web 工程(15.Tomcat 启动日志
)
浏览器正常显示 HelloWorld 页面
JAVA Web 工程(16.浏览器访问正常
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package com.fakeproject.servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
// 设置编码
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
// 接收客户端发送过来的信息,输出到控制台
System.out.println("___接收到客户端发送过来的信息:" + req.getParameter("msg"));
// 向客户端返回消息
resp.getWriter().write("你好,Servlet !");
}
}
|
web.xml 添加一下 Servlet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- src/main/webapp/WEB-INF/web.xml -->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- HelloServlet -->
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.fakeproject.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello_servlet</url-pattern>
</servlet-mapping>
</web-app>
|
编写一个 jsp 测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<%-- src/main/webapp/hello_jsp.jsp --%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>HelloJsp</title>
</head>
<body>
<h3>Hello JSP !</h3>
<hr>
<form action="${pageContext.request.contextPath}/hello_servlet" method="post">
请输入发给服务器的信息:<input type="text" name="msg" required><br/>
<input type="submit" value="发送">
</form>
</body>
</html>
|
index.html 加一下 jsp 页面的链接
1
2
|
<hr>
<a href="./hello_jsp.jsp">./hello_jsp.jsp</a>
|
客户端发送信息
JAVA Web 工程(17.浏览器给服务器发送信息
)
服务端控制台按预期输出信息
JAVA Web 工程(18.服务器接收到信息
)
客户端正常接收到服务端返回的信息
JAVA Web 工程(19.浏览器接收到服务器返回的信息
)
打包之前,先把下面这几个地方的 JDK 都改成 1.8 版
JAVA Web 工程(20.修改工程的 JDK 版本
)
JAVA Web 工程(21.修改模块的 JDK 版本
)
JAVA Web 工程(22.修改编译器的 JDK 版本
)
再清理一下
JAVA Web 工程(23.清理一下
)
进行打包
JAVA Web 工程(24.打包
)
用于发布到服务器,选第一个
JAVA Web 工程(25.选第一项
)
完成后,会在 target 目录下生成 demo1-1.0-SNAPSHOT.war 包(可以改名)
JAVA Web 工程(26.打包结果
)
CentOS7 安装 tomcat
1
2
3
4
5
|
yum install -y tomcat
systemctl start tomcat
systemctl enable tomcat
systemctl status tomcat
|
防火墙开启 http 服务,并将 80 端口转发至 8080 端口,参考
1
2
3
4
5
6
7
|
firewall-cmd --list-all
firewall-cmd --add-service=http
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --runtime-to-permanent
firewall-cmd --list-all
|
将 war 包,上传到服务器 /var/lib/tomcat/webapps 目录
1
2
|
/var/lib/tomcat/webapps
└── demo1.war
|
浏览器访问正常,功能测试正常
JAVA Web 工程(27.部署测试结果
)
完工