Servlet的基本使用和作用
Servlet 的基本概念
Servlet 是运行在 Web 服务器上的 Java 程序,用于处理客户端(如浏览器)的请求并生成动态响应。它是 Java EE(现 Jakarta EE)的核心组件之一,通常用于构建 Web 应用程序。
Servlet 的主要作用
- 处理 HTTP 请求:接收客户端发送的 GET、POST 等请求,并解析参数。
- 生成动态内容:根据请求数据动态生成 HTML、JSON 或其他格式的响应。
- 会话管理:通过
HttpSession跟踪用户会话状态。 - 与数据库交互:通过 JDBC 或其他持久层技术操作数据。
实现一个简单的 Servlet
以下是一个基础的 Servlet 示例,展示如何处理 GET 请求并返回响应:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;public class HelloServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<html><body>");out.println("<h1>Hello, Servlet!</h1>");out.println("</body></html>");}
}
配置 Servlet
在 web.xml 中配置 Servlet 的映射路径:
<web-app><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>
注解方式配置(Servlet 3.0+)
从 Servlet 3.0 开始,支持使用注解替代 web.xml:
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {// 方法实现同上
}
Servlet 的生命周期
- 初始化:容器调用
init()方法,仅执行一次。 - 处理请求:每次请求调用
service()方法(实际由doGet()、doPost()等实现)。 - 销毁:容器调用
destroy()方法释放资源。
常见应用场景
- 用户登录验证。
- 表单数据处理。
- RESTful API 后端实现。
- 文件上传与下载。
