HttpServlet(1):从下载tomcat到打开一个网页

89 阅读1分钟

首选去安装tomcat:tomcat.apache.org/

这里选择最新的tomcat11,下载Windows zip

image.png

IDEA创建一个新的Maven项目,这里用的是IntelliJ IDEA 2025.1.3

生成器选Maven

image.png

在IDEA配置一个tomcat image.png

从 Tomcat 11 开始的用户应注意到,由于 Java EE 转移到 Eclipse 基金会并成为 Jakarta EE 的一部分,所有实现 API 的主包已从 javax.* 更改为 jakarta.* 。这几乎肯定需要代码更改,以便使应用程序能够从 Tomcat 9 及更早版本迁移到 Tomcat 11 及以后版本。为此已开发了一个迁移工具来协助此过程。

所以在pom.xml里,我们要使用jakarta包

<dependency>
  <groupId>jakarta.servlet</groupId>
  <artifactId>jakarta.servlet-api</artifactId>
  <version>5.0.0</version>
  <scope>provided</scope>
</dependency>

创建一个java类,extends HttpSevrlet 重写doGet,doPost方法

import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

public class HelloHttp extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setContentType("text/html");
        java.io.PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>Hello World</title></head>");
        out.println("<body>");
        out.println("<h1>Hello World</h1>");
        out.println("</body>");
        out.println("</html>");
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        doGet(request, response);
    }

}

image.png

  • 你可以选择:在webapp下的WEB-INF下的web.xml里配置目录
<servlet>
  <servlet-name>HelloHttp</servlet-name>
  <servlet-class>com.xiaozhang.com.HelloHttp</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>HelloHttp</servlet-name>
  <url-pattern>/hello</url-pattern>
</servlet-mapping>

image.png servlet选择要加载的类,取名字+选择指定目录;servlet-mapping映射,名字要一一对应

  • 或者:使用注解
@WebServlet(name = "HelloHttp", urlPatterns = {"/hello"})
public class HelloHttp extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>Hello World</title></head>");
        out.println("<body>");
        out.println("<h1>Hello World</h1>");
        out.println("</body>");
        out.println("</html>");
        
        Cookie cookie = new Cookie("name", "xiaozhang");
        response.addCookie(cookie);

        HttpSession session = request.getSession();
        // 可以在这里使用 session
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        doGet(request, response);
    }
}

启动tomcat,会进入index默认页面,我们在地址栏后加入在servlet-mapping配置的路径,就能看见HelloHttp里配置的文件了

image.png