IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中

1.IDEA社区版搭建web项目

问题:

  • IDEA社区版没有创建Web工程的选项
  • IDEA社区版没有将Web工程打包成war包的选项

1.1 创建普通的java项目,此处不再赘述

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第1张图片

1.2 构建web项目的目录结构

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第2张图片

1.3 设置编译目录

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第3张图片

1.4 在WEN-INF文件夹下新建web.xml

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第4张图片


<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>SimpleWebAppdisplay-name>
  
  <servlet>
    <servlet-name>HelloServletservlet-name>
    <servlet-class>com.bes.test.HelloServletservlet-class>
  servlet>
  <servlet-mapping>
    <servlet-name>HelloServletservlet-name>
    <url-pattern>/hellourl-pattern>
  servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.htmlwelcome-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(方法一)

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第5张图片

1.4.2 导入pom.xml文件

1.4.2.1 添加pom.xml文件

web项目添加pom.xml,转变为Maven项目

  • 方式一:手动创建pom.xml文件,然后右键 Add as Maven Project

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第6张图片

  • 方式二:点击我的项目, 右键找到Add Framework Support(此方式我行不通)
    IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第7张图片
    弹出以下页面,若没有maven,一直下拉,若还没有,检查你的项目中是否已有pom.xml文件,勾选Maven,点击Ok
    IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第8张图片
    pom.xml成功创建(已转变成maven项目),可以添加你的依赖了

1.4.2.2 导入servlet-api.jar坐标(方法二)

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第9张图片


<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.0modelVersion>

    <groupId>org.examplegroupId>
    <artifactId>helloworldartifactId>
    <version>1.0-SNAPSHOTversion>
    <packaging>warpackaging>

    <properties>
        <maven.compiler.source>11maven.compiler.source>
        <maven.compiler.target>11maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    properties>

    <dependencies>
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>servlet-apiartifactId>
            <version>2.5version>
            <scope>providedscope>
            
        dependency>
    dependencies>

project>

2. 编写web项目

以下是一个简单的基于 Java EE 8 的 Web 应用示例,包括一个简单的 Servlet 和 JSP 页面:

  1. 创建 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);
          }
      }
      
  2. 创建 JSP 页面:

    • WEB-INF 文件夹下创建一个名为 hello.jsp 的文件,并添加以下内容:

      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      
          
              Hello JSP
          
          
              

      Hello, <%= request.getAttribute("name") %>!

  3. 配置 web.xml 文件:

    • 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">
          <display-name>SimpleWebAppdisplay-name>
          <servlet>
              <servlet-name>HelloServletservlet-name>
              <servlet-class>com.bes.test.HelloServletservlet-class>
          servlet>
          <servlet-mapping>
              <servlet-name>HelloServletservlet-name>
              <url-pattern>/hellourl-pattern>
          servlet-mapping>
          <welcome-file-list>
              <welcome-file>index.htmlwelcome-file>
          welcome-file-list>
      web-app>
      
  4. 编译和打包项目:

    • 将编写好的 Java 源代码和 JSP 文件放在正确的目录中。
    • web.xml 和其他资源文件放在正确的位置。
  5. 部署到支持 Java EE 8 的服务器(如 Tomcat 10 或 WildFly)并启动服务器。

  6. 访问 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

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第10张图片

3.2 打包成war包

进入web工程根目录,执行mvn clean package
IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第11张图片
得到的war包如下:
IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第12张图片

4. 将war包部署到Tomcat9中

将war复制到Tomcat的webapps目录中,不需要重启Tomcat,会自动部署该目录下的工程。
IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第13张图片

5. 访问Tomcat中的项目

IDEA2022社区版搭建web项目,并用maven打包成war包,部署到tomcat9中_第14张图片

引用的文章:
IDEA社区版搭建web项目

你可能感兴趣的:(maven,java,tomcat,servlet,web)