Intellij IDEA 2020.2.3 配置使用 Tomcat+Servlet

创建项目

  • 添加新项目如下图:
添加新项目
  • 弹出的窗口中选择Java Enterprise,点击Next
选择Java Enterprise
  • 下一个界面中勾选Servlet,点击Next

  • 选择文件名和文件路径,点击FInish

配置 Tomcat 服务器

  • 若为在Intellij IDEA 中添加过Tomcat Server,则在Setting中设置添加自己安装的tomcat服务器,tomcat服务器安装可以参考Tomcat+PHP+Mysql环境配置

  • 点击Run中的Edit Configuration

  • 点击添加Tomcat Server

  • 下方会警告Warning: No artifacts marked for deployment,切换到Deployment下。

  • 添加build artifact,点击Ok

初步使用

执行 jsp 文件

  • src/main/webapp文件夹下新建文件index.jsp

  • index.jsp文件内容如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    <!DOCTYPE html>
    <html>
    <head>
    <title>JSP - Hello World</title>
    </head>
    <body>
    <h1><%= "Hello World!" %>
    </h1>
    <br/>
    <a href="hello-servlet">Hello Servlet</a>
    </body>
    </html>

  • 点击运行启动服务,效果如下:

执行 Servlet

  • src/main/java文件夹下新建包servlet,并在其中添加HelloWorld.java文件

  • HelloWorld.java文件内容如下:
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
36
37
38
package servlet;

// 导入必需的 java 库

import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

// 扩展 HttpServlet 类
@WebServlet("/Servlet")
public class HelloWorld extends HttpServlet {

private String message;

public void init() throws ServletException
{
// 执行必需的初始化
message = "Hello World";
}

public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 设置响应内容类型
response.setContentType("text/html");

// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}

public void destroy()
{
// 什么也不做
}
}
  • 打开src/main/webapp/WEB_INF下的web.xml文件,在<web-app>中添加如下内容:
1
2
3
4
5
6
7
8
9
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>servlet.HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
  • 点击运行启动服务,浏览器访问切换到HelloWorld目录下
1
2
3
http://localhost:8080/demo1_war_exploded
//由上面的路径切换到下面的路径
http://localhost:8080/demo1_war_exploded/HelloWorld
  • 成功的效果如下:

Tomcat 版本问题

如果使用tomcat 10版本,则上面切换到HelloWorld目录后会报错。 解决方法有两个: 1. 更换tomcat版本,安装tomcat 9 2. 手动导入tomcat 10所带的servlet-api.jar

手动导入 servlet-api.jar

  • 打开FileProject Structure中的Modules,切换到Dependencies

  • 点击加号添加,选择自己tomcat路径lib下的servlet-api.jar

  • 打开项目下的pom.xml文件,删除如下内容:

1
2
3
4
5
6
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
  • 点击重新运行启动服务,浏览器访问切换到HelloWorld目录下,即可正常访问。

Intellij IDEA 2020.2.3 配置使用 Tomcat+Servlet
https://hwh-2019.github.io/2022/11/18/Intellij-IDEA-2020-2-3-配置使用-Tomcat-Servlet/
作者
HWH
发布于
2022年11月18日
许可协议