Servlet 实战技术:请求调度、重定向、Cookie 安全与非阻塞 I/O
1. 请求调度与转发
1.1 概念区分
请求转发和请求调度有所不同。转发是在客户端进行请求的移交,浏览器会重定向到不同的 URL;而调度是在服务器端进行请求的移交,最终用户通常察觉不到服务器端的调度。
1.2 调度操作步骤
- 获取
ServletContext
的引用。 - 调用
getRequestDispatcher
方法,传入目标 Servlet 的名称或有效 HTTP 资源的 URL,获取RequestDispatcher
对象。 - 调用
RequestDispatcher
对象的forward
方法,传入HttpServletRequest
和HttpServletResponse
对象,完成请求的移交。
示例代码如下:
rd = sc.getRequestDispatcher("/AddServlet");
rd.forward(request, response);
2. 重定向到其他应用或站点
2.1 重定向示例
使用 HttpServletResponse
对象的