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. Oracle每天自学一点点 常用Oracle

    创建表空间:create tablespace crmtb datafile 'F:\Oracle\oradata\crmtb.dbf' size 100M;删除表空间:DROP TABLESPACE ...

  2. Grandpa's Estate---POJ1228(凸包)

    http://poj.org/problem?id=1228 学长说这是稳定凸包,我感觉就是凸包嘛. 所谓稳定就是判断能不能在原有凸包上加点,得到一个更大的凸包,并且这个凸包包含原有凸包上的所有点.知 ...

  3. JS-怎么得到局部域中的数据

    1,使用全局变量 var str = '';function fn1(){    var a = '大鸡腿~';    str = a;} 2,使用一个局部函数 function fn2(){     ...

  4. 黑客们的故事(连载六):IT世界里的理想主义者

    一头疏于梳理的长发和一把肆意生长的大胡子,往往可能是人们对于理查德马修斯托曼的第一印象.这位马上就要过60岁生日的自由软件基金会主席不用手机.不买房.没有汽车,看起来像是个流浪汉,但是却是美国工程院院 ...

  5. windows7 自带l2tp/ipsec VPN客户端连接Cisco ASA

    搞了半天,最后发现其实很简单,在ASA默认配置的基础上,把所有crypto ipsec ikev1 transform-set 加上mode transport,然后把tunnel-group Def ...

  6. js的变量使用<bean><list:write>赋值时需加' '

    script的变量使用<bean><list:write>赋值时需加' ',如:var code ='<bean:write name="target" ...

  7. 使用本地服务器组来管理局域网或公网上的SQLSERVER

    使用本地服务器组来管理局域网或公网上的SQLSERVER 测试的两台机器 Windows7 64位   SQLSERVER2005 SP5 Windows7 64位   SQLSERVER2012 S ...

  8. C#函数式编程之标准高阶函数

    何为高阶函数 大家可能对这个名词并不熟悉,但是这个名词所表达的事物却是我们经常使用到的.只要我们的函数的参数能够接收函数,或者函数能够返回函数,当然动态生成的也包括在内.那么我们就将这类函数叫做高阶函 ...

  9. 团队项目--站立会议 DAY3

    小组名称:D&M 参会人员:张靖颜,钟灵毓秀,何玥,赵莹,王梓萱 今天是站立会议的第三天 在前两次会议的基础上 组员们总结了自己在任务中的经验 个抒己论在会议中进行了一些讨论 并且对接下来的工 ...

  10. Android开发学习总结——Android开发的一些相关概念

    一.什么是3G.4G 1995年问世的第一代模拟制式手机(1G)只能进行语音通话. 1996到1997年出现的第二代GSM.CDMA等数字制式手机(2G)便增加了接收数据的功能 Ÿ 3G指的是第三代移 ...