1. Servlet 简介
- Servlet 是什么?
Servlet 是 Java 编写的服务器端程序,用于处理客户端请求并生成动态内容。它基于 Java Servlet API 标准,通常运行在支持 Java 的 Web 服务器上。
2. Servlet 的生命周期
- 初始化(Initialization): 在 Servlet 被加载时执行,用于执行一些初始化操作。
- 服务(Service): 处理客户端请求的主要方法。每次请求都会调用 service() 方法。
- 销毁(Destruction): 在 Servlet 卸载时执行,用于清理资源。
3. 创建第一个 Servlet
1. 创建 Java 类: 创建一个 Java 类,继承 HttpServlet 类,并覆盖 doGet 或 doPost 方法。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 处理 GET 请求
response.getWriter().println("Hello, Servlet!");
}
}
2. 配置 Servlet: 在 web.xml 文件中配置 Servlet。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3. 部署和运行: 部署项目到支持 Servlet 的 Web 服务器上,然后访问 http://your-server-address/your-context-path/hello 就可以看到 "Hello, Servlet!" 的响应了。
4. 获取请求参数
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取请求参数
String name = request.getParameter("name");
// 处理 GET 请求
response.getWriter().println("Hello, " + (name != null ? name : "Servlet") + "!");
}
5. 发送响应
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应内容类型
response.setContentType("text/html");
// 获取响应写入器
PrintWriter out = response.getWriter();
// 写入响应内容
out.println("<html><body>");
out.println("<h2>Hello, Servlet!</h2>");
out.println("</body></html>");
}
这只是一个简单的 Servlet 教程,涉及了 Servlet 的基本概念、生命周期、创建和部署过程,以及处理请求和发送响应的基本操作。在实际项目中,你可能会涉及更多的内容,例如会话管理、过滤器、监听器等。
请注意,现代的 Java Web 开发更多地采用注解(Annotation)来配置 Servlet,而不是传统的 web.xml 文件。这使得配置更加简洁和方便。
转载请注明出处:http://www.zyzy.cn/article/detail/6869/Servlet