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,然后再forward,前者不是更一目了然吗?然而并不存在一个这样的方法,或许是拆分成原子更便于自定义。

BTW:在搜索资料过程中的意外收获:What is the difference between response.sendRedirect() and request.getRequestDispatcher().forward(request,response) [duplicate]

2、RequestDispatcher揭秘。

从哪里获得RequestDispatcher?

ServletRequest或者ServletContext对象,方法名是getRequestDispatcher

两者的差异:

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

如何使用RequestDispatcher?

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

3、属性作用域

最新文章

  1. AngularJS指令的详解
  2. C++基于TCP和UDP的socket通信
  3. 关于VSTO调用Excel后进程无法退出的解决方案:
  4. 细说OpenSessionInView问题
  5. 使用Linux的mail命令发送邮件
  6. JSP学习初体验
  7. EXTJS 4.2 资料 控件之 xtype: "fieldcontainer",追加html
  8. thinking in java Generics Latent typing
  9. 解析Qt4.7.3编译MySql数据库驱动,存中文乱码、过滤转义字符问题
  10. TCP Connection Establishment and Termination
  11. c# 基础连接已经关闭: 连接被意外关闭,错误的解决
  12. POJ3683 Falsita
  13. iOS 常用开源代码整理
  14. ash
  15. Linux学习(二十)软件安装与卸载(三)源码包安装
  16. jquery.tagsinput的使用例子,包括模糊查询后端代码
  17. Nginx入门安装升级
  18. thinkphp save() 跟新失败
  19. BZOJ4154:[Ipsc2015]Generating Synergy(K-D Tree)
  20. ny106 背包问题

热门文章

  1. markdown编辑器的小建议
  2. 【Ubuntu安装,ATX基于uiautomator2】之安装步骤
  3. 【转】【Mac系统】之ADB命令总结
  4. IE的坏脾气——3像素Bug
  5. ssh 面试
  6. vim-addon-manager【转】
  7. zmq重点
  8. urllib基本使用-Handler和自定义的opener()
  9. php中使用curl来post一段json数据
  10. 利用.Net中Process类调用netstat命令来判断计算端口的使用情况