首页 > 代码库 > 【Head First Servlets and JSP】笔记10:请求分派(RequestDispatcher)
【Head First Servlets and JSP】笔记10:请求分派(RequestDispatcher)
让其它组件接管全部请求
;部分接管请求
一些问题——
截点有用的
1、让其它组件接管全部请求。
package com.example.web;import com.example.model.BeerExpert;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;public class BeerSelect extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String c = req.getParameter("color"); BeerExpert be = new BeerExpert(); List result = be.getBrands(c); req.setAttribute("styles", result); // 为请求增加一个属性,供JSP使用。 RequestDispatcher view = req.getRequestDispatcher("result.jsp"); // 为JSP实例化一个请求分派器 view.forward(req, resp); // 使用请求分派器要求容器准备好JSP,并向JSP发送请求和响应 }}
为什么不是sendRequest("result.jsp");,而是Requestdispatcher?
2、RequestDispatcher揭秘。
从哪里获得RequestDispatcher?——getRequestDispatcher
- ServletRequest,可以使用相对路径
- ServletContext,必须使用绝对路径,也就是路径开头必须是“/”。
如何使用RequestDispatcher?
- 调用forward()。很简单,把请求和响应作为参数传进去就可以了。
- 需要注意的,不要在响应提交(例如os.flush)之后forward(),这样做是非法的。
3、属性作用域
【Head First Servlets and JSP】笔记10:请求分派(RequestDispatcher)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。