RequestDispatcher是一个Web资源的包装器,可以用来把当前request传递到该资源,或者把新的资源包括到当前响应中。RequestDispatcher接口中定义了两个方法:include/forward

由于<jsp:include>只能指定固定的jsp文件名,不能动态指定jsp文件名。我们需要把<jsp:include>翻译为Java code – RequestDispatcher.include();

用法:

<% request.getRequestDispatcher(filename).include(request, response); />

服务器端的重定向可以有两种方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法.

HttpServletResponse.sendRedirect()方法将响应定向到参数location指定的、新的URL。location可以是一个绝对的URL,如response.sendRedirect("http: //java.sun.com")也可以使用相对的URL。如果location以“/”开头,则容器认为相对于当前Web应用的根,否则,容器将解析为相对于当前请求的URL。这种重定向的方法,将导致客户端浏览器的请求URL跳转。从浏览器中的地址栏中可以看到新的URL地址,作用类似于上面设置 HTTP响应头信息的实现。

RequestDispatcher.forward()方法将当前的request和response重定向到该 RequestDispacher指定的资源。这在实际项目中大量使用,因为完成一个业务操作往往需要跨越多个步骤,每一步骤完成相应的处理后,转向到下一个步骤。比如,通常业务处理在Servlet中处理,处理的结果转向到一个JSP页面进行显示。这样看起来类似于Servlet链的功能,但是还有一些区别。一个RequestDispatcher对象可以把请求发送到任意一个服务器资源,而不仅仅是另外一个Servlet。 include()方法将把Request Dispatcher资源的输出包含到当前输出中。

注意,只有在尚未向客户端输出响应时才可以调用forward()方法,如果页面缓存不为空,在重定向前将自动清除缓存。否则将抛出一个IllegalStateException异常。

简单用法:

RequestDispatcher rd;
       rd = getServletContext().getRequestDispatcher("/Expired.jsp");
       rd.forward(request,response);

JSP中RequestDispatcher的用法的更多相关文章

  1. JAVA基础之sql模糊匹配、外键以及jsp中include的用法

    一.SQL模糊匹配 适用于对字符串进行模糊搜索 格式:   字段名 Like '%关键词%'      %          表示这个位置可有任意个字符(没有也可以) %关键词%  只要包含关键词就算 ...

  2. JSP中 input type 用法

    JSP中 input type 用法 Input表示Form表单中的一种输入对象,其又随Type类型的不同而分文本输入框,密码输入框,单选/复选框,提交/重置按钮等,下面一一介绍. 1,type=te ...

  3. JSP 中EL表达式用法详解

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...

  4. jsp中page指令用法详解

    转自:https://www.jb51.net/article/73428.htm 一.JSP 指令 JSP 指令(directive)影响由 JSP 页面生成的 servlet 的整体结构.下面的模 ...

  5. 【转载】JSP 中EL表达式用法详解

    EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${ ...

  6. jsp中 RequestDispatcher接口的两种跳转:forward()和include()

    在web程序中,经常是由多个Servlet来完成请求.RequestDispatcher接口就是为了多个Servlet之间的调整而实现的.该接口可以用httpSerbletRequest的getReq ...

  7. JSP中常用JSTL用法

    使用标签时,需要在jsp文件头加入以下代码: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/cor ...

  8. jsp 中 include指令 用法, <%@ include file="..."%> 和 <jsp:include page="..." flush="true" />的区别?

    原文链接https://blog.csdn.net/u012187452/article/details/51779052 1. 什么是jsp 文件? 个人理解.  jsp 是一个容器,可以将我们编写 ...

  9. jsp中JavaBean的用法

    UserRegisterBean.java:这是JavaBean package JavaBean; public class UserRegisterBean { private String us ...

随机推荐

  1. 禁用缓存的过滤器Filter

    这里是禁用缓存的方法: package com.atguigu.javaweb.cache; import java.io.IOException; import javax.servlet.Filt ...

  2. Poj(1273),最大流,EK

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 69355   Accepted: 2687 ...

  3. linux 关机重启命令

    1 shutdown 关机 shutdown -h now 立刻重启 -c 取消前面的一个关机命令 shutdown -c shotdown -r now 尽量使用shutdown 其余的关机命令 h ...

  4. 2016 Al-Baath University Training Camp Contest-1 C

    Description Rami went back from school and he had an easy homework about bitwise operations (and,or, ...

  5. Json 入门例子(form表单)【0】

    <script> $(function () { var aa = $("#fm").serialize().replace(/\+/g, ""); ...

  6. android Log 等级以及在Android Studio 的Logcat中过滤方法

    Log等级 等级越高,问题越严重. Log.e(TAG,"级别5,错误信息"); Log.e(TAG,"级别5,错误信息"); Log.w(TAG," ...

  7. Duilib 鼠标在某控件例如按钮上悬停后,对目标控件操作

    其实对WM_MOUSEHOVER消息的处理,因为WindowImplBase基类中对此消息未处理,所以在自己的窗口类中实现: .h文件中加入 LRESULT OnMouseHover( UINT uM ...

  8. Mysql压测工具mysqlslap 讲解

    在mysql5.1以后的版本:客户端带了个工具mysqlslap可以对mysql进行压力测试: 可以使用mysqlslap --help来显示使用方法: Default options are rea ...

  9. 互联网扫描器 ZMap 完全手册

    初识 ZMap ZMap被设计用来针对整个IPv4地址空间或其中的大部分实施综合扫描的工具.ZMap是研究者手中的利器,但在运行ZMap时,请注意,您很有 可能正在以每秒140万个包的速度扫描整个IP ...

  10. 修改 OWA 修改密码的生效时间

    从 Exchange 中文站之前的文章配置 OWA 下次登录时更改密码中, 我们知道在 Exchange 2010 SP1 当中是可以配置在 OWA 中修改域用户的密码的,那么不知道你是否有发现,当用 ...