JSP页面跳转的实战规则

  使用JSP大约有下列三种跳转方式:

1. response.sendRedirect();

2. response.setHeader("Location","");

3. <jsp:forward page="" />

经过试验得到下面的一些规则:

一. response.sendRedirect()

此语句前不允许有out.flush(),如果有out.flush(),会有异常:

java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.

at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)

...

跳转后浏览器地址栏变化

如果要跳到不同主机下,跳转后,此语句后面的语句会继续执行,如同新开了线程,但是对 response的操作已经无意义了;

如果要跳到相同主机下,此语句后面的语句执行完成后才会跳转;

二. response.setHeader("Location","")

此语句前不允许有out.flush(),如果有out.flush(),页面不会跳转。

跳转后浏览器地址栏变化

此语句后面的语句执行完成后才会跳转

三. <jsp:forward page="" />

此语句前不允许有out.flush(),如果有,会有异常:

java.lang.IllegalStateException: forward() not allowed after buffer has committed.

at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)

at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)

at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836)

...

跳转后浏览器地址栏不变,但是只能跳到当前主机下

此语句后面的语句执行完成后才会跳转
 

时间: 2024-08-29 00:01:14

JSP页面跳转的实战规则的相关文章

jsp javawe...-怎么从一个jsp页面跳转到另一个jsp,有哪些方法,不经过action?

问题描述 怎么从一个jsp页面跳转到另一个jsp,有哪些方法,不经过action? 怎么从一个jsp页面跳转到另一个jsp,有哪些方法,不经过action?用<a >? 解决方案 最简单的方法,在index.jsp页面写一个JS跳转到你的action.简单的JSP跳转问题:从一个JSP跳转到另一个JSP的Action应该怎么写?struts2 从一个action 跳转到另一个action的两种方法 解决方案二: 直接访问xxxxx.jsp 解决方案三: sendRedirect 重定向

Jsp页面跳转后,往回传值问题

问题描述 Jsp页面跳转后,往回传值问题 各位大神好,我想请问一下, 我有两个JSP页面A和B A 里面有3个TAB页,点击任何一个TAB页就会隐藏其他两个的内容,并动态生成当前TAB页的内容. 默认是在TAB1上,进来就加载内容. B 是点击TAB2里面的一个按钮之后跳转到的页面. 那么问题来了,我在B里面选择一个选项,如何将这个参数传回A呢? 我目前用的是window.location.href = " A.jsp? 参数=xxx " ; 但是问题是回到A页面的时候,默认是在TAB

jsp java w...-怎么从一个jsp页面跳转到另一个jsp而不经过action,是直接跳转?

问题描述 怎么从一个jsp页面跳转到另一个jsp而不经过action,是直接跳转? 怎么从一个jsp页面跳转到另一个jsp而不经过action,是直接跳转? 解决方案 你直接跳转那个jsp页面就行了 解决方案二: 不要访问带action的连接,直接xxxxxx.jsp 解决方案三: a标签了,ajax了,不是都可以嘛 解决方案四: 你的jsp页面放在WEB–INF下的吧, 解决方案五: 楼主直接定义a 标签跳转至页面 不写action

图片-jsp页面跳转之后,样式不生效 一定要刷新之后才生效

问题描述 jsp页面跳转之后,样式不生效 一定要刷新之后才生效 页面跳转至后css样式不生效 一定要刷新之后才生效 背景是几张图片的轮播 跳转按钮:<div class="ui-block-a"><a href="dingdan.jsp" data-theme="a" data-role="button" data-icon="search" data-iconpos="top&

jsp 网站开发-jsp页面跳转,希望哪位大神指点一下

问题描述 jsp页面跳转,希望哪位大神指点一下 从列表页面检索信息之后点击修改,修改完之后再点击返回,怎样到之前的信息列表页面,,,希望大神们指点一下 解决方案 JSP页面跳转中的问题 解决方案二: 之前的搜索方法再调一遍咯 解决方案三: 想到两种方法: 1:修改页面展现时,列表页面的内容只隐藏,不关闭:修改完成后,列表页面重新显示,同时把修改内容更新至列表: 2:修改完成后重新加载列表信息. 解决方案四: javascript:history.go History.back() 解决方案五:

JSP页面跳转的五种方法

1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,

jsp页面跳转问题

问题描述 麻烦问一下我写了一个Test.jsp页面里面有一个输入框<inputtype="text"name="workno"id="workno"value="<%=workno%>"size="20"class="textarea">在输入框的下面是一些按键号码<td><ahref="Test.jsp?workno=01"

jsp页面跳转

问题描述 做一个主页,主页上面是一排分栏的标题,比如ABCDE现在我点击A跳转到aa.jsp页面,aa.jsp页面内include了几个12.jsp,23.jsp,34.jsp几个页面块,如果不包含这几个JSP的话aa.jsp就只有一个显示数据并带有查询和分类,分页的数据表格,包含了那几个JSP才会显示网页的主header和foot,也就是"欢迎来到**网站"和"版本号***",然后还有一个JSP是在aa.jsp中做标题栏选项用的,比如在34.jsp仅有一个<

JSP页面跳转的几种方法以及注意点

       最近自己在做项目时遇到一个问题,明明加了response.sendRedirect() ,系统也执行了,但是它就是不跳转;最后在网上找到原因如下:        首先我们要知道的是用response.sendRedirect做转向的原理,它其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以sendRedirect时,浏览器的地址栏上可以看到地址的变化. 而用<jsp:forward page=""/>则不同,它是直接在serv