@WebServlet 注解是如何实现Servlet URL映射的?
在传统 Servlet 中,Web 资源的映射信息存储在 WEB-INF 目录下的 web.xml 文件中。然而,Servlet 注解 @WebServlet 提供了另一种更方便、更有效的方式来映射 URL 模式。
当请求到达服务器时,如果没有 web.xml 文件,服务器将遵循以下步骤来处理:
- 加载包含 @WebServlet 注解的类: Servlet 容器使用类的全限定名来查找和加载标有 @WebServlet 注解的类。
- 解析 @WebServlet 注解: 容器解析 @WebServlet 注解,提取其中的 URL 模式信息。
- 匹配请求的 URL: 容器将请求的 URL 与从 @WebServlet 注解中提取的 URL 模式相匹配。
- 查找匹配的 Servlet 类: 如果找到匹配的 URL 模式,容器将定位与之关联的 Servlet 类。
- 实例化 Servlet 对象: 一旦找到匹配的类,容器就会实例化该 Servlet 对象。
- 调用 Servlet 方法: 容器调用与请求方法相对应的 Servlet 方法(例如,doGet()、doPost()、doPut() 等)。