Java Servlet(九):转发请求与重定向请求区别
转发:
<%
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(九):转发请求与重定向请求区别的更多相关文章
- java请求转发,响应重定向的区别
请求转发:request.getRequestDispatcher().forward(); 例:request.getRequestDispatcher("/index.jsp" ...
- Servlet 响应 响应相关与重定向 请求 获取表单数据2种方法
一.HttpServletResponse (响应) 包括下面三个: 1.响应消息行 HTTP/1.1 200 OK 200是HTTP状态码, 代表请求已成功. (查httpservletres ...
- Java Servlet 过滤器与 springmvc 拦截器的区别?
前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...
- JSTL、请求转发和URL重定向
JSTL 为什么要使用JSTL? 因为在JSP中写JAVA代码很麻烦,而JSTL可以简化在JSp中写JAva代码的流程 如何使用JSTL? 准备工作: ①将JSTL依赖的jar包导入工程的WEB-IN ...
- Java --Servlet 32个经典问题
Servlet方面 1.说一说Servlet的生命周期? Servlet有良好的生存期的定义,包括加载和实例化.初始化.处理请求以及服务结束.这个生存期由javax.servlet.Servlet接口 ...
- nginx unit 1.8 支持基于java servlet 的开发模型
最近unit 1.8 发布了,有两个比较大的新特性,内部请求路由,以及java servlet 容器应用的开发 内部请求路由配置参考 { "routes": [ { "m ...
- Servlet 转发请求与重定向,以及路径问题
转发请求 当一个servlet接收到请求后,如果需要将请求转发给另外一个servlet或者jsp文件,可使用下面这种方法: package cn.ganlixin.servlet; import ja ...
- [原创]java WEB学习笔记15:域对象的属性操作(pageContext,request,session,application) 及 请求的重定向和转发
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Java 请求转发和重定向的区别以及JavaWeb三大作用域
三大作用域以及转发和重定向 学习总结 1. 转发和重定向 转发 重定向 转发和重定向的区别: 什么时候用转发什么时候用重定向 三大作用域 作用域类型 作用域方法 如何选择作用域 总结 学习总结 1. ...
随机推荐
- Codeforce - Street Lamps
Bahosain is walking in a street of N blocks. Each block is either empty or has one lamp. If there is ...
- [BZOJ2795][Poi2012]A Horrible Poem
2795: [Poi2012]A Horrible Poem Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 261 Solved: 150[Subm ...
- linux 运行可执行文件version `GLIBC_2.17' not found
http://www.cnblogs.com/q191201771/p/3875316.html root@socfpga:/media/ram/nfs/dvb# ./a.out ./a.: vers ...
- Java教程-Java 程序员们值得一看的好书推荐
学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资 ...
- 纪念逝去的岁月——C/C++冒泡排序
冒泡排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...
- HTTP协议及其请求头分析
HTTP协议及其请求头分析 HTTP协议及其请求头分析 众所周知,Internet的基本协议是TCP/IP协议,目前广泛采用的FTP.Archie Gopher等是建立在TCP/IP协议之上的应用 ...
- 原生javascript封装ajax和jsonp
在我们请求数据时,完成页面跨域,利用原生JS封装的ajax和jsonp: <!DOCTYPE html> <html lang="en"> <head ...
- [LintCode] Wiggle Sort 扭动排序
Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] < ...
- redis集群搭建
1. Redis Cluster的架构图. (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群 ...
- java客户端调用c#的webservice服务
此处使用到了CXF框架,可以使用以下坐标从maven仓库中获取相关jar包: <dependency> <groupId>org.apache.cxf</groupId& ...