標籤:std ring image throw 如何 param ide except 發送
讓其它組件接管全部請求
;部分接管請求
一些問題——
截點有用的
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)