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. ...
随机推荐
- [WP8.1UI控件编程]Windows Phone自定义布局规则
3.2 自定义布局规则 上一节介绍了Windows Phone的系统布局面板和布局系统的相关原理,那么系统的布局面板并不一定会满足所有的你想要实现的布局规律,如果有一些特殊的布局规律,系统的布局面板是 ...
- OI刷题记录
从六月一号开始记录啦 6月1日 link-cut-tree BZOJ2631 tree
- 51nod算法马拉松14
这次太丢人了只搞出来了A到D,那就将就写一写A到D... A 棋盘问题 脑筋急转弯题,不难发现每一次两个人只能染白奇数个格子,所以数数有奇数还是偶数个白格子就行了. #include<cstdi ...
- Java_动态加载类(英文)
It is possible to load and reload classes at runtime in Java, though it is not as straightforward as ...
- 20145330《Java程序设计》课程总结
20145330第八周<Java学习笔记> 每周读书笔记汇总 第一周学习总结 第二周学习总结 第三周学习总结 第四周学习总结 第五周学习总结 第六周学习总结 第七周学习总结 第八周学习总结 ...
- 高性能分布式内存队列系统beanstalkd(转)
beanstalkd一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Facebook ...
- Redis常用命令(二)
连接操作相关的命令 quit:关闭连接(connection) auth:简单密码认证 持久化 save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 lastsave:返回上次成功将数据 ...
- js如何使得新打开的窗口居中
<a href="#" class="blue" onclick="window.open('/Content/service.html', ' ...
- Some useful links
Integrating the FlyCapture SDK for use with OpenCV CStereoGrabber_Bumblebee.h OpenCV with PGR Flycap ...
- 安装redis时遇到zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
参考博文,http://www.phperz.com/article/14/1219/42002.html 解决办法 make MALLOC=libc