在JSP中redirect页面?

我必须在jsp中devise几个页面。 点击第一页上的提交button后,页面应自动redirect到第二页。

你可以帮助一个简单的例子或链接到一个教程,演示如何实现这个?

<% String redirectURL = "http://whatever.com/myJSPFile.jsp"; response.sendRedirect(redirectURL); %> 

这个答案还包含一个标准的解决scheme,只使用jstlredirect标签:

 <c:redirect url="/home.html"/> 

只需在包含提交button的<form>action属性中定义目标页面即可。

所以,在page1.jsp

 <form action="page2.jsp"> <input type="submit"> </form> 

与这个问题无关,如果你需要做任何事,JSP 并不是做生意的最好的地方。 考虑学习servlets 。

你好 :如果你需要更多的控制链接应该redirect到哪里,你可以使用这个解决scheme。

IE浏览器。 如果用户点击了CHECKOUT链接 ,但是如果用户注册(login)或者注册页面不存在,您可以将他/她发送到结帐页面。

你可以使用JSTL核心LIKE:

 <!--include the library--> <%@ taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core" %> <%--create a var to store link--%> <core:set var="linkToRedirect"> <%--test the condition you need--%> <core:choose> <core:when test="${USER IS REGISTER}"> checkout.jsp </core:when> <core:otherwise> registration.jsp </core:otherwise> </core:choose> </core:set> 

解释:和…一样

  //pseudo code if(condition == true) set linkToRedirect = checkout.jsp else set linkToRedirect = registration.jsp 

THEN:在简单的HTML …

 <a href="your.domain.com/${linkToRedirect}">CHECKOUT</a> 

return; @ oopbase的答案return; 声明。

让我们考虑一下传统authentication系统的用例,我们将login信息存储到会话中 。 在每个页面上,我们检查活动会话

 /* Some Import Statements here. */ if(null == session || !session.getAttribute("is_login").equals("1")) { response.sendRedirect("http://domain.com/login"); } // .... session.getAttribute("user_id"); // .... /* Some More JSP+Java+HTML code here */ 

乍看之下看起来很好, 它有一个问题。 如果你的服务器由于时间限制而失效,并且用户试图访问页面,那么如果你没有在try..catch块中写代码或者处理if(null != session.getAttribute("attr_name"))每次。

所以通过return; 声明我停止了进一步的执行,并被迫将页面redirect到某个位置。

 if(null == session || !session.getAttribute("is_login").equals("1")) { response.sendRedirect("http://domain.com/login"); return; } 

请注意,根据要求,redirect的使用可能会有所不同。 现在人们不使用这种authentication系统。 (现代方法 – 基于令牌的身份validation )这只是一个简单的例子,了解在哪里以及如何进行redirect。