Java Servlet(九):转发请求与重定向请求区别
2024-10-18 17:20:35
转发:
<%
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不是同一个对象。
最新文章
- C语言产生标准正态分布或高斯分布随机数
- Some thing about Graph
- CSS3参考手册
- 关于使用regsvr32命令注册ActiveX控件失败的解决办法
- IIS Shared Configuration
- 关于StrutsTypeConverter类型转换器
- jQuery Pagination Ajax分页插件中文详解(摘)
- HDU 1787 GCD Again
- js jquery 获取元素(父节点,子节点,兄弟节点),元素筛选
- Linux跑脚本用sh和./有什么区别?(转)
- [20180828]exadata--豆腐渣系统的保护神.txt
- 把本人基于Dubbo的毕业设计分享粗来~
- Angel - MemoryDataBlock - angel.task.estimize.sample.number
- JAVA基础--重新整理(1)后版
- Map和String类型之间的转换
- KVM虚拟化管理 virt manager常用操作
- golang interface判断为空nil
- hive类型转化错误,会错误提示指定分区参数
- 06_python_小数据池/ is == /编码
- 微信小程序之生命周期
热门文章
- Excel中COUNTIFS函数统计词频个数出现次数
- hdu1232 并查集
- CentOS 6.7安装Mysql 5.7
- golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法
- viso 由于形状保护和/或图层属性设置不能进行编辑
- Qt 控件随窗口缩放
- *HDU 1286,2824欧拉函数
- thinkphp框架3.2的cookie删除问题记录
- IOS第18天(1,核心动画layer, 旋转,缩放,平移,边框,剪裁,圆角)
- token原理