请求转发

=====框架用着用着感觉整个人都变笨了,昨天,连简单的getattribute和getparameter居然搞混了。趁现在时间充裕,复习一下以前的东西。坚持就是胜利。你不努力,没人替你努力。


1、得到RequestDispatcher对象:

RequestDispatcher对象:用于封装一个由路径所标示的服务器资源

方法一:通过ServletContext(可以是其他能得到的web应用程序的上下文对象,以转发到该应用程序的资源)

RequestDispatcher getRequestDispatcher(java.lang.String path)
 //只能以“/”开头的路径,表示相当于当前上下文根的路径

RequestDispatcher getNamedDispatcher(java.lang.String name)
 //在web.xml中给出的servlet-name为参数

方法二:通过ServletRequest

RequestDispatcher getRequestDispatcher(java.lang.String path)
 //1、以“/”开头的路径,表示相对于当前上下文根的路径;2、没有以“/”开头的路径,表示相对于当前servlet的路径

2、使用RequestDispatcher中的方法

void forward(ServletRequest request,
             ServletResponse response)
             throws ServletException,
                    java.io.IOException
 a、必须在响应被提交给客户端之前被调用

 b、调用之后,原来响应缓存中没有提交的内容将被清除

void include(ServletRequest request,
             ServletResponse response)
             throws ServletException,
                    java.io.IOException
 a、被调用的servlet的响应将被并入到原先的响应对象中,原servlet可以继续输出响应信息

3、HttpServletResponse对象的sendRedirect()方法和RequestDispatcher的forward()方法区别:

sendRedirect的工作原理图:

     

1、

调用sendRedirect()方法,实际上是告诉浏览器Servlet2所在的位置,让浏览器重新访问Servlet2。调用sendRedirect()方法,会在响应中设置Location响应报头。要注意的是,这个过程对于用户来说是透明的,浏览器会自动完成新的会话

forward()方法对浏览器和用户都是透明的,浏览器不会发起新的会话


2、

sendRedirect():可以重定向到其他的服务器上的应用程序


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值