转发:

<%
pageContext.setAttribute("pageContextAttr", "pageContextAttribute");
request.setAttribute("requestAttr", "requestAttribute");
session.setAttribute("sessionAttr", "sessionAttribute");
application.setAttribute("applicationAttr", "applicationAttribute");
%> pageContext:<%=pageContext.getAttribute("pageContextAttr")%><br />
request:<%=request.getAttribute("requestAttr")%><br />
session:<%=session.getAttribute("sessionAttr")%><br />
application:<%=application.getAttribute("applicationAttr")%><br /> <%
String servletName = "myELServletPage.jsp";
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/" + servletName);
requestDispatcher.forward(request, response);
// 1、 重定向 "/"代表当前web站点的根目录
// 转发:“/”代表当期web应用的 根目录。
// 2、转发:只能转发到当前web应用的资源;
// 重定向:可以重定向到任何资源(包括外部资源)。
%>

重定向:

<%
pageContext.setAttribute("pageContextAttr", "pageContextAttribute");
request.setAttribute("requestAttr", "requestAttribute");
session.setAttribute("sessionAttr", "sessionAttribute");
application.setAttribute("applicationAttr", "applicationAttribute");
%> pageContext:<%=pageContext.getAttribute("pageContextAttr")%><br />
request:<%=request.getAttribute("requestAttr")%><br />
session:<%=session.getAttribute("sessionAttr")%><br />
application:<%=application.getAttribute("applicationAttr")%><br /> <%
// 1、 重定向 "/"代表当前web站点的根目录
// 转发:“/”代表当期web应用的 根目录。
response.sendRedirect("myRedirectPage.jsp"); // 2、转发:只能转发到当前web应用的资源;
// 重定向:可以重定向到任何资源(包括外部资源)。
%>

myELServletPage.jsp与myRedirectPage.jsp内容都相同:

    pageContext:<%= pageContext.getAttribute("pageContextAttr") %><br/>
request:<%= request.getAttribute("requestAttr") %><br/>
session:<%= session.getAttribute("sessionAttr") %><br/>
application:<%= application.getAttribute("applicationAttr") %><br/>

当访问转发页面时,结果是:

当访重定向页面时,结果是:

转发与从定向区别:

1、用法却别:

重定向请求:1、调用HttpServletRequest 的getRequestDispatcher()的方法,获取RequestDispatcher对象, 调用getRequestDispatcher()需要传入转发的地址。

2、调用HttpServletRequest的forward(request,response)方法。

转发请求:调用HttpServletResponse对象的sendRedirect()方法,直接在sendRedirect()方法中传入要转发的目标地址。

2、重定向请求: "/"代表当前web站点的根目录;
     转发请求:“/”代表当期web应用的 根目录。

3、重定向请求:可以重定向到任何资源(包括外部资源);

转发请求:只能转发到当前web应用的资源。

4、重定向请求:只发送了一个次请求。浏览器地址不发送变化。

转发请求:发送了两次请求。浏览器地址发送变化。

5、转化请求:目的页面可以接受该页面传递的参数信息。在最终的Servlet中,request对象和中转的那个request是同一个对象。
    重定向请求:在最终的Servlet中,request对象和中转的那个request不是同一个对象。

Java Servlet(九):转发请求与重定向请求区别的更多相关文章

  1. java请求转发,响应重定向的区别

    请求转发:request.getRequestDispatcher().forward(); 例:request.getRequestDispatcher("/index.jsp" ...

  2. Servlet 响应 响应相关与重定向 请求 获取表单数据2种方法

    一.HttpServletResponse  (响应) 包括下面三个: 1.响应消息行  HTTP/1.1  200 OK 200是HTTP状态码, 代表请求已成功. (查httpservletres ...

  3. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

  4. JSTL、请求转发和URL重定向

    JSTL 为什么要使用JSTL? 因为在JSP中写JAVA代码很麻烦,而JSTL可以简化在JSp中写JAva代码的流程 如何使用JSTL? 准备工作: ①将JSTL依赖的jar包导入工程的WEB-IN ...

  5. Java --Servlet 32个经典问题

    Servlet方面 1.说一说Servlet的生命周期? Servlet有良好的生存期的定义,包括加载和实例化.初始化.处理请求以及服务结束.这个生存期由javax.servlet.Servlet接口 ...

  6. nginx unit 1.8 支持基于java servlet 的开发模型

    最近unit 1.8 发布了,有两个比较大的新特性,内部请求路由,以及java servlet 容器应用的开发 内部请求路由配置参考 { "routes": [ { "m ...

  7. Servlet 转发请求与重定向,以及路径问题

    转发请求 当一个servlet接收到请求后,如果需要将请求转发给另外一个servlet或者jsp文件,可使用下面这种方法: package cn.ganlixin.servlet; import ja ...

  8. [原创]java WEB学习笔记15:域对象的属性操作(pageContext,request,session,application) 及 请求的重定向和转发

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. Java 请求转发和重定向的区别以及JavaWeb三大作用域

    三大作用域以及转发和重定向 学习总结 1. 转发和重定向 转发 重定向 转发和重定向的区别: 什么时候用转发什么时候用重定向 三大作用域 作用域类型 作用域方法 如何选择作用域 总结 学习总结 1. ...

随机推荐

  1. 【BZOJ】3757: 苹果树

    http://www.lydsy.com/JudgeOnline/problem.php?id=3757 题意:n个节点的树,每个点有一种颜色.现有m种询问,每次询问x y a b表示x到y的路径上颜 ...

  2. HDU 1693 Eat the Trees(插头DP)

    题目链接 USACO 第6章,第一题是一个插头DP,无奈啊.从头看起,看了好久的陈丹琦的论文,表示木看懂... 大体知道思路之后,还是无法实现代码.. 此题是插头DP最最简单的一个,在一个n*m的棋盘 ...

  3. Android -- EditText方法

    1. 选择需要的内容 final EditText myEditText=(EditText)findViewById(R.id.editText1); //编辑框对象 myEditText.setT ...

  4. 不错的判断 UITextView 内容不超过20个字符串的方法

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSSt ...

  5. python基础学习二——第二天

    对于python而言,一切事物都是对象,对象是基于类创建的,对象继承了类的属性,方法等特性 一.int 首先我们来查看一下int包含了哪些函数 # python3.x dir(int) # ['__a ...

  6. 一键搞定JavaEE应用,JRE+Tomcat+Mysql-JaveEE绿色运行环境JTM0.9版

    本文转载自[http://www.blogjava.net/huliqing/archive/2009/01/09/247375.html] 这是一个集成了jre,tomcat,mysql的绿色运行环 ...

  7. 建立和断开与MySQL服务器的连接

    MySQL 与 mysql 之间的区别: MySQL指完整的MySQL DBMS系统,mysql仅代表一个特定的客户程序. 连接服务器: >mysql -h host_name -p -u us ...

  8. 科技来电:不容错过的win10轻度美化攻略

    作为微软不择手段采用弹框.限时.警告等方式强推win10的结果, win10市场占有率大增,微软高兴了,可用户苦了,吹洗剪+杀马特般的metro&传统混血开始菜单.鼻青脸肿般的任务栏.单一颜色 ...

  9. Java面试题大全(二)

    41.是否可以继承String类? String类是final类故不可以继承. 42.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? switch(expr1 ...

  10. Java关键字final、static使用总结

    Java关键字final.static使用总结   一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...