Servlet 生命周期由以下几个阶段组成:
init()
方法来初始化 Servlet,仅在 Servlet 实例创建时调用一次。service()
方法来处理客户端请求,方法内根据请求类型调用 doGet()
或 doPost()
等方法。destroy()
方法,在 Servlet 被卸载或服务器关闭时调用。public class MyServlet extends HttpServlet {
public void init() throws ServletException {
// 初始化代码
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 GET 请求
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 POST 请求
}
public void destroy() {
// 销毁时的清理代码
}
}
通过 HttpServletRequest
和 HttpServletResponse
对象,可以轻松获取请求信息并生成响应内容。
service()
方法处理请求service()
方法根据请求类型自动分派到 doGet()
、doPost()
等方法。
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if (req.getMethod().equals("GET")) {
// 处理 GET 请求
resp.getWriter().write("GET success");
} else if (req.getMethod().equals("POST")) {
// 处理 POST 请求
resp.getWriter().write("POST success");
}
}
doGet()
和 doPost()
方法处理请求通常通过覆盖 doGet()
或 doPost()
方法来分别处理 GET 或 POST 请求。
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 设置响应的内容类型
resp.setContentType("text/html");
// 响应输出内容
resp.getWriter().write("GET success");
}
java复制代码@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 获取请求参数
String param = req.getParameter("param");
// 设置响应的内容类型
resp.setContentType("text/html");
// 响应输出内容
resp.getWriter().write("POST success. Received param: " + param);
}
请求转发将请求从一个 Servlet 转发到另一个 Servlet 或 JSP 页面进行处理,转发在服务器内部完成,客户端不会察觉到。
java复制代码@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 设置请求属性
req.setAttribute("message", "This is a forwarded request.");
// 转发请求到另一个 Servlet 或 JSP 页面
req.getRequestDispatcher("/targetServlet").forward(req, resp);
}
重定向是将客户端的请求重定向到另一个 URL,服务器会发送一个响应指示客户端浏览器访问新的 URL。
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 重定向到另一个 URL
resp.sendRedirect("/newPage.jsp");
}
HttpServlet
是处理 HTTP 请求的基础工具,覆盖 service()
、doGet()
和 doPost()
方法可以满足大部分需求。
© 著作权归作者所有
本文由 趣代码Blog 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。