使用idea 2021 2.3 创建了一个 servlet 模板项目
package com.example.servlet1;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
@WebServlet(name = "helloworld",urlPatterns = "/helloworld")
public class HelloServlet extends HttpServlet {
private String message;
public void init() {
message = "Hello World!";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
// Hello
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>" + message + "</h1>");
out.println("</body></html>");
}
public void destroy() {
}
}
启动后,报404错误
以为是项目没有发布出去。
找了很多问题。都没法解决。
后面想到一个问题,我使用的是Tomcat10 使用的是最新的servlet版本。
import jakarta.servlet.http.HttpServlet;
@WebServlet 注解也使用的是最新版本的。
import jakarta.servlet.annotation.WebServlet;
所以,需要在导入 HttpServlet 和 WebServlet 注解时,使用 jakarta 包中的类。
最后,问题解决。
package com.example.demo1;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
@WebServlet(urlPatterns = "/hello-servlet")
public class HelloServlet extends HttpServlet {
private String message;
public void init() {
message = "Hello World!";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
// Hello
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>" + message + "</h1>");
out.println("</body></html>");
}
public void destroy() {
}
}