Idea 环境传统 JavaWeb 项目搭建
环境
日期:2022年2月17日
环境版本:idea2021、maven3、jdk8、tomcat10
下载解压 tomcat
Idea 配置应用服务器
Idea 创建 maven javaweb 项目
清理 pom.xml 中不必要的东西。
web.xml 模板
注意:web-app 版本错误可能会导致 jsp el 表达式无法解析而将源码直接返回给客户端!!!
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
</web-app>
以下是通过 mvn 创建时生成的 web.xml,不能用这个
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
项目目录创建
配置 Idea 项目结构
Idea 添加项目启动配置
项目默认编码
启动项目
启动并访问 http://localhost:8080/webproject_war_exploded/
tomcat10 中 jsp-api 与 servlet-api 的变化
Tomcat 10 将 JavaEE 也换成了Jakarta® EE,导致 jsp-api 与 servlet-api 包路径由原来的 "javax.servlet.*" 变成了 "jakarta.servlet",
在引入这两个 jar 包时需要换成以下两个包:【也可以手动将这 tomcat/lib/ 下的两个 jar 包添加到项目依赖中去】
否则会报错:jakarta.servlet.ServletException: 类 ... 不是Servlet
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
所以升级到 tomcat10 之前要注意:如果项目中其他框架依赖了 jsp-api 与 servlet-api ,会由于包路径的变化而无法工作,建议不要贸然升级到 tomcat10;
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.0</version>
<scope>provided</scope>
</dependency>
各个版本 web.xml
2.3
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Servlet 2.3 Web Application</display-name>
</web-app>
2.4
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Servlet 2.4 Web Application</display-name>
</web-app>
2.5
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
</web-app>
3.0
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
</web-app>
3.1
<?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_3_1.xsd"
version="3.1">
</web-app>
4.1
<?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>Archetype Created Web Application</display-name>
</web-app>
posted on 2022-02-17 12:00 guardianbo 阅读(328) 评论(0) 编辑 收藏 举报