[英]add a back button in jsp
我有3 jsp pages(index.jsp, result1.jsp,result2.jsp)
和一个servlet
。 处理过程如下:
index.jsp
<form method="post" action="MYSERVLET" >
<input type="text" name="studentname" id="studentname"/>
<input type="submit" value="click" />// goes to a servlet named as MYSERVLET
</form>
我的服务
String t=request.getParameter("studentname");
------fetching data from database and sending to result1.jsp------
String nextJSP = "/result1.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response);
result1.jsp
//从servlet检索数据并在result1.jsp
显示数据, result1.jsp
相同的值传递给result2.jsp
out.println(retrieved result from servlet);
<a href="result2.jsp?somestring=<%out.println(retrieved result from servlet);%>"> <%out.println(retrieved result from servlet);%></a>// after clicking on "retrieved result from servlet" i am passing this retrieved value to another jsp result2.jsp and also retrieving some data from database as follows:
result2.jsp
String w=request.getParameter("somestring");
out.println(w);
我想在back button here (in result2.jsp)
提供一个back button here (in result2.jsp)
以便在单击back button
后将带我到result1.jsp
,在这里我可以看到先前显示的数据(out.println(retrieved result from servlet);)
。 但是,当我单击浏览器后退按钮(在result2.jsp中)时,每次警报即将"Confirm Form Resubmission"
重新"Confirm Form Resubmission"
,然后我重新加载该页面以查看(out.println(retrieved result from servlet);)
,我想避免此警报,我该如何避免呢? 我如何能直接看到该页面而没有任何警报?
我认为您的问题在于您在Servlet中执行的“转发”操作。 “转发”仅发生在服务器上,而浏览器不知道服务器上正在发生什么。 实际上,即使您在result1页面上,您也应该在网址栏中看到“ MYSERVLET Url”。 因此,当您继续运行result2.jsp时,单击“后退”将仅使您再次进入Servlet URL,而不是“ result1.jsp”。 并且由于您的servlet是表单提交的目标,因此您会收到警报。
为了避免这种情况,您应该在servlet中尝试使用“重定向”或“ sendRedirect”之类的方法,而不要使用“转发”。 在这种情况下,您的浏览器将知道地址的更改,您也可以使用“后退”按钮。
但是请注意,通过重定向,您发送到servlet的所有请求数据都不能直接传递到result1.jsp,您应该将它们保存在Session中。 尝试阅读此内容 。
请使用session.setAttribute("name",value);
将所有数据保留在第一页的会话中session.setAttribute("name",value);
登陆到第二页后,单击按钮指定第一页的地址,不包含任何数据,并在第一页上显示先前的数据,请使用session.getAttribute("name");
这样,每当您在页面之间切换时,它将重新加载页面并获取会话值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.