1.IDEA社区版搭建web项目
问题:
- IDEA社区版没有创建Web工程的选项
- IDEA社区版没有将Web工程打包成war包的选项
1.1 创建普通的java项目,此处不再赘述
1.2 构建web项目的目录结构
1.3 设置编译目录
1.4 在WEN-INF文件夹下新建web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name>SimpleWebApp</display-name>
<!-- display-name作用是在登录到tomcat管理页面可以看到显示名字 -->
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.bes.test.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
此时 http://xmlns.jcp.org/xml/ns/javaee 和 http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd 会报红,原因是没有web.xml的约束文件。tomcat的lib中的servlet-api.jar包含所需的约束文件,因此可以手动导入该jar包,也可以通过pom.xml坐标导入该jar包(我建议通过坐标导入,因为后续通过Maven编译项目时,还是需要在pom.xml文件中导入坐标)。
1.4.1 手动导入servlet-api.jar(方法一)
1.4.2 导入pom.xml文件
1.4.2.1 添加pom.xml文件
web项目添加pom.xml,转变为Maven项目
- 方式一:手动创建pom.xml文件,然后右键 Add as Maven Project
- 方式二:点击我的项目, 右键找到Add Framework Support(此方式我行不通)
弹出以下页面,若没有maven,一直下拉,若还没有,检查你的项目中是否已有pom.xml文件,勾选Maven,点击Ok
pom.xml成功创建(已转变成maven项目),可以添加你的依赖了
1.4.2.2 导入servlet-api.jar坐标(方法二)
<?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>org.example</groupId>
<artifactId>helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
<!-- 已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的也不会被打包。
-->
</dependency>
</dependencies>
</project>
2. 编写web项目
以下是一个简单的基于 Java EE 8 的 Web 应用示例,包括一个简单的 Servlet 和 JSP 页面:
- 创建 Servlet:
- 创建一个 Java 类,继承自
javax.servlet.http.HttpServlet
。 - 实现
doGet()
或doPost()
方法来处理请求和响应。 - 在方法中可以编写业务逻辑,并将结果存储在请求属性或会话属性中。
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = "World";
request.setAttribute("name", name);
request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
}
}
- 创建 JSP 页面:
- 在
WEB-INF
文件夹下创建一个名为hello.jsp
的文件,并添加以下内容:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello JSP</title>
</head>
<body>
<h1>Hello, <%= request.getAttribute("name") %>!</h1>
</body>
</html>
- 配置 web.xml 文件:
- 在
WEB-INF
文件夹下创建web.xml
文件并添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name>SimpleWebApp</display-name>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.bes.test.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
- 编译和打包项目:
- 将编写好的 Java 源代码和 JSP 文件放在正确的目录中。
- 将
web.xml
和其他资源文件放在正确的位置。
- 部署到支持 Java EE 8 的服务器(如 Tomcat 10 或 WildFly)并启动服务器。
- 访问 Web 应用:
- 在浏览器中输入
http://localhost:{port}/context-path/hello
,其中{port}
是你的服务器端口,context-path
是你的应用上下文路径。 - 应该会看到 “Hello, World!” 的字样。
这样就创建了一个简单的基于 Java EE 8 的 Web 应用。你可以根据需要添加更多的 Servlet 和 JSP 页面,并实现更多的业务逻辑。
3. maven编译web项目打包成war包
3.1 在pom.xml文件中确认当前打包方式为war
3.2 打包成war包
进入web工程根目录,执行mvn clean package
得到的war包如下:
4. 将war包部署到Tomcat9中
将war复制到Tomcat的webapps目录中,不需要重启Tomcat,会自动部署该目录下的工程。
5. 访问Tomcat中的项目