码迷,mamicode.com
首页 > Web开发 > 详细

【Head First Servlets and JSP】笔记10:请求分派(RequestDispatcher)

时间:2017-06-04 11:41:48      阅读:212      评论:0      收藏:0      [点我收藏+]

标签: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

  1. ServletRequest,可以使用相对路径
  2. ServletContext,必须使用绝对路径,也就是路径开头必须是“/”。

如何使用RequestDispatcher?

  1. 调用forward()。很简单,把请求和响应作为参数传进去就可以了。
  2. 需要注意的,不要在响应提交(例如os.flush)之后forward(),这样做是非法的。

 

3、属性作用域

技术分享

 

【Head First Servlets and JSP】笔记10:请求分派(RequestDispatcher)

标签:std   ring   image   throw   如何   param   ide   except   发送   

原文地址:http://www.cnblogs.com/xkxf/p/6939610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!