繁体   English   中英

在jsp中添加后退按钮

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM