首页 > 技术文章 > Idea 环境传统 JavaWeb 项目搭建

guardian-hb 2022-02-17 12:00 原文

环境

日期: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>

 

推荐阅读