jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别

一、response.sendRedirect("")

始终要记住一点就是这种跳转是让客户端浏览器自己去访问指定的页面,这个指定页面的地址就是sendRedirect("")参数的内容。如果跳转的页面是webapp里面的页面,客户端需要两层访问服务器。如果是其他网址的话,客户端则不再访问此服务器,转而访问其他的服务器。是服务器端与客户端的两次往返。速度还是慢些。

(1)地址栏内容有变化。

(2)sendRedirect("")后的语句依旧执行,所以在此语句后面的有向客户端传送信息的语句时候会出现闪烁现象,一般情况下可以做个判断来,如果怎么样则转向指定的页面,否则执行其他的代码。

(3)sendRedirect("")里的参数可以是网页也可以是jsp页面等。

如sendRedirect(“http://www.baidu.com”)//转到webapp外面去。

sendRedirect(“a.jsp”)     //转到webapp里面的其他页面去。

(4)如果写成sendRedirect(“/a.jsp”)此时的/代表的是http://127.0.0.1/,它并不包含这个页面所在的webapp。所以要在/后面加上a.jsp的路径。

(5)它们不共用一个request对象。而且跳转页面a.jsp是接收不到传递给包含此跳转指令的页面的参数的。但是包含此跳转指令的页面可以向跳转页面中传递参数,此时跳转页面a.jsp能够接收到传递的参数。如sendRedirect(“a.jsp?name=123”),所以说用此种跳转的话可以让包含此跳转指令的页面接收到参数,然后将参数再往跳转页面中传递。

二、<jsp:forward  page= ""/>

始终要记住一点就是这种跳转是让服务器端内部进行跳转。而且只能在服务器的内部转换,并将跳转到最后一个页面的执行结果返回给客户端,速度快。

(1) 地址栏内容没有变化。

(2) <jsp:forward page=""/>后面的语句不会被执行的。

(3)如果写成<jsp:forward page=“/a.jsp”/>,此时的/代表的是http://127.0.0.1/工程名,此时在后面要跟上a.jsp的路径。

(4)跳转页面a.jsp和包含跳转页面不共用一个request对象。但是跳转页面可以访问到传递给包含此跳转指令的页面的参数的, 跳转的页面的request包含的参数比包含跳转指令的页面的参数要大。这种情况和静态包含和动态包含相似。

(5)包含此跳转指令的页面可以向要跳转到的页面传递参数。

传参方式一:<jsp:forward page=“a.jsp?param=123”/>时被包含的jsp页面是可以访问该参数的。

传参方式二:

<jsp:forward page=“a.jsp”>

<jsp:param name=“” value=“”/>

</ jsp:include >

jsp:forward response.sendRedirect的更多相关文章

  1. 关于jsp中response.sendRedirect显示错误

    今天在jsp中作判断时,当不同条件时利用response.sendRedirect(“url”)来转向不同的页面,首先是判断验证码,当错误时就转向错误页面:当正确时,才进行用户名和密码的判断,同样也r ...

  2. 转response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  3. 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  4. Jsp重定向(response.sendRedirect())和转发(request.getRequestDispatcher().forward(request,r)的差别

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  5. response.sendRedirect跳转 jsp:forward跳转

    response.sendRedirect跳转 <% response.sendRedirect("online.jsp"); %> jsp:forward跳转 < ...

  6. jsp/servlet 中sendRedirect,include,forward区别

    1 sendRedirect response.sendRedirect(); 服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求新的地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以sess ...

  7. response.sendRedirect()与request.getRequestDispatcher().forward()区别

    Servlet中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳 ...

  8. <jsp:forward>、requestDispatcher和sendRedirect()的区别

    1.会话信息保存在服务器内存上,可以断续访问,和cookie相比,其保存在服务器上. 2.男人就像蓝牙:只有在你接近时,他才会找上你.当你离开后,他便又去找其他的"设备"了.女人就 ...

  9. javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的区别

    先来两张图,方便理解: 可以看出,重定向时,是服务器向游览器重新发送了一个response命令,让游览器再次向url2发送请求,以获取url2的资源 而请求转发时,类似于是服务器自己向自己发了一个跳转 ...

随机推荐

  1. Maven + 最新SSM整合

    . 1. 开发环境搭建 参考博文:Eclipse4.6(Neon) + Tomcat8 + MAVEN3.3.9 + SVN项目完整环境搭建 2. Maven Web项目创建 2.1. 2.2. 2. ...

  2. Troubleshoot Refused VNC Connection in CentOS 7

    Troubleshoot Refused VNC Connection in CentOS 7 Posted on March 15, 2015 by Istvan Szarka — 2 Commen ...

  3. java 继承多态的一些理解不和不理解

    1.向上转型的一个误区 一直以为Child 继承Parent以后, Parent p = new Child();  p可以调用Child类中拓展Parent的方法,原来必须在强制转换成Child类才 ...

  4. Makeflow 4.0 发布,工作流引擎

    Makeflow 4.0 发布了,主要改进包括: 1. 支持分层次的 workers,带 master-foremen-workers 范式. 2. 一个 worker 可同时处理超过 1 个的任务3 ...

  5. C#设计模式——抽象工厂

    一.引言 我相信看到这段文字的人,都具备了良好的技术功底.但是对于自己编写的代码总是充满抱怨,希望能够将自己编写的代码如同房子一般先进行有效 的设计,然后在进行建设.那么这篇文章能够给你一些思路,这里 ...

  6. 【Leetcode】【Medium】Pow(x, n)

    Implement pow(x, n). 解题思路: 求浮点数的幂次方,注意可能为负数次幂: 可以使用二分搜索的思想,当n为偶数时,x^n = x^(n/2) * x^(n/2),因此只需要求得一半的 ...

  7. 利用Junit4进行程序模块的测试,回归测试

    ①在你的工程里导入JUnit4的包 ②右击创建JUnit测试类,在测试类中编写测试代码即可. JUnit 目前需要掌握的有一下几点: Fixture系列:BeforeClass,AfterClass, ...

  8. Xperf Basics: Recording a Trace(转)

    http://randomascii.wordpress.com/2011/08/18/xperf-basics-recording-a-trace/   This post is obsolete ...

  9. JavaScript中的property和attribute

    property,attribute都作“属性”解,但是attribute更强调区别于其他事物的特质/特性. 而在JavaScript中,property和attribute更是有明显的区别.众所周知 ...

  10. JNI技术基础(1)——从零开始编写JNI代码

    众所周知,Java程序的最大特点就是其跨平台的特性,编写的上层应用程序可以不加任何修改甚至不用重新编译而运行于不同的平台上,然而,Java本身也存着这一个弊端,那就是性能上相对要差一些,在对性能要求比 ...