使用JSP大约有下列三种跳转方式:
1. response.sendRedirect();
2. response.setHeader("Location","");
3. <jsp:forward page="" />
经过试验得到下面的一些规则:
一. response.sendRedirect()
此语句前不允许有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(),如果有,页面不会跳转。
跳转后浏览器地址栏变化
此语句后面的语句执行完成后才会跳转
三. <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)
...
跳转后浏览器地址栏不变,但是只能跳到当前主机下
此语句后面的语句执行完成后才会跳转
1。我做的是在登陆后自动跳转到登陆前的那一页,因此必须先取得那一页的URL并且传到登陆页去,在页面间穿参数有很多种方法,这里选用的是重写URL方法。
取得当前页的URL:
<%
String url=request.getScheme()+"://";
url+=request.getHeader("host");
url+=request.getRequestURI();
if(request.getQueryString()!=null)
url+="?"+request.getQueryString();
%>
注意:再取的该URL时不仅仅是取到当前页面的URL值,还应该把“?”后面的参数一并取过来,这样才能保证之前的页面在以后能正常访问。
重写URL传参:
<a href=login.jsp?url="+url+">登陆</a>
2。登陆页获取参数:
<% String urlstring = request.getParameter("url") ;%>
登陆表单:
<form method="post" name="login" action="login.jsp">
<input name="action" value="login" type="hidden">
<p>
用户名:
<input type="text" name="username">
</p>
<p>
密码:
<input type="password" name="password">
<br>
<input type="hidden" name="url" value="<%=urlstring %>"> //暂存url,然后再传到当前页
</p>
<p>
<input type="submit" value="登录" name="submit">
<input type="reset" value="重置" name="reset">
<br>
</p>
<p>
</p>
</form>
3。登陆成功后的跳转:
<span id="time" style="background:red">5</span>秒钟后自动跳转,如果不跳转,请点击下面链接
<script language="JavaScript1.2" type="text/javascript">
<!--
function delayURL(url) { //定时跳转
var delay = document.getElementById("time").innerHTML;
if(delay > 0) {
delay--;
document.getElementById("time").innerHTML = delay;
} else {
window.top.location.href = url;
}
setTimeout("delayURL('" + url + "')", 1000);
}
//-->
</script>
<a href="<%=urlstring%>">返回</a>
<script type="text/javascript">
delayURL("<%=urlstring%>");
</script>
整个过程思路比较清楚,实现起来也不是很繁琐,但是肯定还有更简单的方法,请大家赐教。
分享到:
相关推荐
### JSP页面跳转方法详解 #### 一、概述 JSP(Java Server Pages)是一种动态网页技术标准,被广泛应用于构建动态网站和Web应用程序。在JSP开发中,页面跳转是一项非常基础且重要的功能,它使得用户能够在不同的...
### JSP页面跳转方法详解 #### 一、RequestDispatcher.forward() **定义与用途:** `RequestDispatcher.forward()` 是一种服务器端的跳转方法,它主要用于在同一个Web应用内部进行页面之间的跳转。该方法的主要...
### 五种JSP页面跳转方法详解 在Web开发中,页面间的跳转是非常常见的需求之一。JSP(JavaServer Pages)作为一种广泛使用的服务器端技术,在实现页面跳转方面提供了多种方式。本文将详细介绍五种JSP页面跳转的方法...
根据给定的文件信息,我们可以深入探讨页面自动跳转、超链接跳转以及JSP页面跳转的相关知识点,尤其关注于HTML、JavaScript以及浏览器兼容性处理。 ### 页面自定义跳转与超链接跳转 页面自定义跳转指的是在网页...
### JSP页面跳转的五种方法详解 #### 一、引言 在Web开发中,页面间的跳转是一项基本且重要的功能。JSP作为Java Web开发中的一个重要组成部分,提供了多种方式来实现页面间的跳转。本文将详细介绍五种常用的JSP页面...
在本示例中,我们探讨的是如何使用SpringBoot框架整合MyBatis,连接MySQL数据库,并通过JSP页面展示数据及实现页面跳转。首先,我们需要理解SpringBoot的核心特性,它是一个简化Spring应用初始搭建以及开发过程的...
java五种jsp页面跳转方法详解 2009-08-21 09:06 1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 另外一个Servlet,JSP 或普通HTML...
### JSP页面跳转方法详解 #### 一、`response.sendRedirect` `response.sendRedirect`方法是JSP中最常见的页面跳转方式之一,它的工作原理是通过修改HTTP响应头中的`Location`字段来告知浏览器重新发送一个请求到...
### JSP页面跳转的五种方法 在Java Web开发中,页面间的跳转是非常常见的需求之一。合理的页面跳转不仅可以提升用户体验,还能优化应用程序的结构。本文将详细介绍JSP页面跳转的五种方法:`RequestDispatcher....
本实例主要聚焦于使用JSP进行页面跳转,这在传统的Java Web开发中非常常见。Spring Boot虽然默认不推荐使用JSP,但通过配置,我们依然可以实现对JSP的支持。 首先,我们需要理解Spring Boot的核心——Spring MVC,...
通过本文档,我们将深入探讨几种常用的JSP页面跳转方式:`response.sendRedirect()`、`response.setHeader()`以及`<jsp:forward>`指令,并通过具体的示例代码来解析这些方法的工作原理及注意事项。 #### 一、`...
WebView_jsp页面跳转到原生Activity是Android与Web交互的一个常见需求,尤其是在混合应用开发中。以下是对这个主题的详细解释: 1. **WebView组件**: WebView是Android SDK中的一个控件,它允许应用程序加载并...
对于使用 Java Server Pages (JSP) 的开发者来说,掌握不同类型的页面跳转方法非常重要,这不仅有助于提高开发效率,还能增强应用程序的性能与用户体验。本文将详细介绍 JSP 中五种常用的页面跳转方式及其应用场景。...
JSP页面跳转是Web开发中的重要概念,用于在用户界面上实现页面间的导航。这里主要介绍五种常见的JSP页面跳转方法,包括RequestDispatcher.forward()、response.sendRedirect()、<jsp:forward page="" / >、Meta标签...
`forward()` 方法属于 `javax.servlet.RequestDispatcher` 类,它允许你将请求转发到服务器上的另一个资源,如Servlet、JSP页面或静态HTML文件。这种方式是服务器端的跳转,客户端(浏览器)无感知,地址栏中的URL...
在探讨JSP页面跳转这一主题时,我们深入解析其概念、实现方式以及在实际开发中的应用,以此来全面理解JSP技术中的页面跳转机制。 ### JSP页面跳转的概念 页面跳转,通常指的是从一个网页转移到另一个网页的过程。...
ajax+jsp 带参数的页面跳转。
#### JSP页面跳转方式 1. **使用`<jsp:forward>`标签进行转发**: - 这种方式主要用于服务器内部的页面跳转,不涉及新的HTTP请求。 - 示例代码: ```jsp <jsp:forward page="targetPage.jsp" /> ``` 2. **使用...
先来介绍一下在服务端JSP脚本中跳转页面的几种方法: 1. response.sendRedirct(“跳转到页面”); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容. request无法传值过去...