Java Servlet 的配置方式主要有 两种:基于 web.xml(传统方式) 和 基于注解(推荐,Servlet 3.0+)。下面分别说明,并给出完整示例。
要求:Servlet 3.0 及以上(Tomcat 7+)
import jakarta.servlet.*;
import jakarta.servlet.annotation.*;
import java.io.*;
@WebServlet(
name = "HelloServlet",
urlPatterns = {"/hello"},
loadOnStartup = 1
)
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("Hello Servlet!");
}
}
http://localhost:8080/项目名/hello
✅ 不需要 web.xml
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.getWriter().write("Hello Servlet!");
}
}
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
version="5.0">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
| 属性 | 说明 |
|---|---|
| urlPatterns | 访问路径 |
| name | Servlet 名称 |
| loadOnStartup | 启动顺序(≥0 表示容器启动时加载) |
| initParams | 初始化参数 |
示例:
@WebServlet(
urlPatterns = "/user",
initParams = {
@WebInitParam(name = "encode", value = "UTF-8")
}
)
src
└── main
├── java
│ └── com/example/HelloServlet.java
├── resources
└── webapp
└── WEB-INF
└── web.xml(可选)
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
❌ 404:urlPatterns 写错
❌ 类找不到:包名不对
❌ Tomcat 版本与 jakarta / javax 不匹配
如果你用的是 Spring Boot / Tomcat 版本 / IDEA 具体配置,可以告诉我,我可以给你更针对性的配置步骤。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。