转发:
1.RequestDispatcher rd = new RequestDispatcher();
rd.forward(request, response)
2.<jsp:forword>
重定向:
1.HttpServletResponse response = new HttpServletResponse();
response.sendRedirect(location)
2.response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn = "/newpath/jsa.jsp ";
response.setHeader( "Location ",newLocn);
3.Meta本身就是HTML标签。使用方法是 <meta http-equiv= "refresh " content= "5; url=http://www.dreamdu.com/ " />
相应的java代码
String content=stayTime+ ";URL= "+URL;
response.setHeader( "REFRESH ",content);
1、 Forward
这种方式是在服务器端作的重定向。服务器往client
发送数据的过程是这样的:服务器在向客户端发送数据之前,是先将数据输出到缓冲区,然后将缓冲区中数据发送给client端。什么时候将缓冲区里的数据发送给client端呢?(1)当对来自client的request处理完,并把所有数据输出到缓冲区,(2)当缓冲区满,(3)在程序中调用缓冲区的输出方法out.flush()或response.flushbuffer(),web
container才将缓冲区中的数据发送给client。
这种重定向方式是利用服务器端的缓冲区机制,在把缓冲区的数据发送到客户端之前,原来的数据不发送,将执行转向重定向页面,发送重定向页面的数据,重定向调用页的数据将被清除。特别提示:在<JSP:FORWORD>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么这种重定向方式将不起作用。
public
void doPost(HttpServletRequest request,HttpServletResponse response) throws
ServletException,IOException
{
response.setContentType(”text/html;
charset=UTF-8″);
ServletContext sc =
getServletContext();
RequestDispatcher rd = null;
rd =
sc.getRequestDispatcher(”/index.jsp”);
rd.forward(request,
response);
}
2、
sendRedirect
这种方式是在客户端作的重定向处理。该方法通过修改HTTP协议的HEADER部分(设置状态代码302,命令浏览器发重新发送请求),对浏览器下达重定向指令的,让浏览器对在location中指定的URL提出请求,使浏览器显示重定向网页的内容。该方法可以接受绝对的或相对的URLs。如果传递到该方法的参数是一个相对的URL,那么Web
container在将它发送到客户端前会把它转换成一个绝对的URL。public void doPost(HttpServletRequest
request,HttpServletResponse response) throws
ServletException,IOException
{
response.setContentType(”text/html;
charset=UTF-8″);
//response.sendRedirect(”/index.jsp”);
效果和前面forward一样
response.sendRedirect(”http://www.sohu.com”);
//跳转到sohu
}
区别:
1、forward重定向是在容器内部实现的同一个Web应用程序的重定向,所以forward方法只能重定向到同一个Web应用程序中的一个资源,重定向后浏览器地址栏URL不变,而sendRedirect方法可以重定向到任何URL,
因为这种方法是修改http头来实现的,URL没什么限制,重定向后浏览器地址栏URL改变。
2、forward重定向将原始的HTTP请求对象(request)从一个servlet实例传递到另一个实例,而采用sendRedirect方式两者不是同一个application。
3、基于第二点,参数的传递方式不一样。forward的form参数跟着传递,所以在第二个实例中可以取得HTTP请求的参数。sendRedirect只能通过链接传递参数,response.sendRedirect(“login.jsp?param1=a”)。
4、sendRedirect能够处理相对URL,自动把它们转换成绝对URL,如果地址是相对的,没有一个‘/’,那么Web
container就认为它是相对于当前的请求URI的。比如,如果为response.sendRedirect(”login.jsp”),则会从当前servlet
的URL路径下找login.jsp: http://127.0.0.1:8080/test/servlet/Servlet 重定向的URL:
http://127.0.0.1:8080/test/servlet/login.jsp,如果为response.sendRedirect(”/login.jsp”)则会从当前应用径下查找url:http://127.0.0.1:8080/login.jsp。而forward不能这样处理相对路径。
java
他们的区别是:
response.sendRedirect是向客户浏览器发送页面重定向指令,浏览器接收后将向web服务器重新发送页面请求,所以执行完后浏览器的url显示的是跳转后的页面。跳转页面可以是一个任意的url(本服务器的和其他服务器的均可)。
RequestDispatcher.forward
则是直接在服务器中进行处理,将处理完后的信息发送给浏览器进行显示,所以完成后在url中显示的是跳转前的页面。在forward的时候将上一页面中传送的request和response信息一同发送给下一页面(而response.sendRedirect不能将上一页面的request和
response信息发送到下一页面)。由于forward是直接在服务器中进行处理,所以forward的页面只能是本服务器的
分享到:
相关推荐
大连实习资料8月9日,主要内容有jsp中标签,对象存储与提交,还有重定向和转发的区别。
在struts中测试登录的redirect,transmit 一个测试重定向和转发的demo。演示转发到jsp和action的过程。 供参考。
1.RequestDispatcher.forward()――转发 是在服务器端起作用,当使用forward()时, Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的 form提交至a.jsp,在a.jsp用到了...
<jsp:forward>元素可以用来转发控制,而Response对象 的sendRedicreat()方法用来重定向请求
Java Servlet 请求转发和重定向是两种不同的页面跳转机制,它们在 Web 应用程序中扮演着重要的角色。理解这两种机制的区别和使用场景是非常重要的。 请求转发是指将请求再转发到另一资源(一般为 JSP 或 Servlet)...
通过网上总结的Servlet的转发与重定向的区别介绍。希望可以帮的上大家
7.Jsp的重定向和转发的流程有什么区别 重定向是客户端行为,转发是服务器端行为 重定向时服务器产生两次请求,转发产生一次请求,重定向时可以转发到项目以外的任何网址,转发只能在当前项目里转发 重定向会导致...
2. JSP 转发和重定向:JSP 转发和重定向用于将请求转发给其他 JSP 页面或 Servlet。使用<jsp:forward>指令可以将请求转发给其他 JSP 页面,而使用sendRedirect 方法可以将请求重定向给其他 URL。 三、Servlet 和 ...
* 转发和重定向的区别在于,转发是将请求转发到另一个资源,而重定向是将请求重定向到另一个资源。 中文乱码 * 中文乱码是指在网页上显示中文时出现乱码的情况。 * 中文乱码的解决方法是设置请求和响应的编码方式...
JSP 中的五种跳转方式详细区别 在 JSP 编程中,跳转是一种常见的技术手段,用于将用户从当前页面重定向到另一个页面。JSP 中有五种跳转方式,包括 RequestDispatcher.forward()、response.sendRedirect()、jsp:...
2.javabean实例 3.JSP1练习 4.JSP2练习 5.在第5章课后习题2基础...重定向和转发有什么区别? EL的语法形式?引入它的主要作用?它访问的是Java脚本数据还是属性数据? 使用JSTL的步骤?分支标签和循环标签的语法形式?
jsp的九大内置对象的详细讲解,包括重定向和转发的部分内容
创建web工程还有代码是试练,请求方式+重定向+请求转发+cookie+session+jsp(四大作用域九大内置对象)
JSP 和 Servlet 中实现页面跳转的方式实例总结 在 web 开发中,页面跳转是一个非常常见的需求,JSP 和 Servlet 是 Java Web 开发中两个最基本的组件,了解它们如何实现页面跳转是非常必要的。本文将根据 JSP 和 ...
本资源摘要信息涵盖了 JSP 程序设计期末试卷的主要知识点,包括 JSP 页面的扩展名、导入 java.io.* 包、异常处理、隐式注释、重定向、Session 对象、JavaBean 的访问范围、请求转发、属性获取、条件标记、Filter ...
用户在客户端请求jsp页面,jsp页面将结果提交到Servlet,由Servlet负责处理结果,访问数据库等操作,并将参数结果放在request,session,application等元素中,然后通过请求转发和重定向转发到其他jsp页面或者...
3. http 中重定向和请求转发的区别(8个) 4. Cookie 和 Session 区别 5. 什么是 jsp,什么是 Servlet?jsp 和 Servlet 有什么区别? 6. jsp 有哪些域对象和内置对象及他们的作用 7. 过滤器和监听器是什么,有什么用...
用JSP实现登录,使用重定向和转发两个方法登录到登陆页面。
通过两个自定义结果集,解决struts2请求转发或重定向时,一个结果码无法对应多个视图的问题。以前的做法,是在配置Action时使用通配符解决,但这样需要JSP页面名称和Action的方法名称一致,如果命名不一致或不规范,...