在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。