gpt4 book ai didi

java - 在jsp中添加后退按钮

转载 作者:行者123 更新时间:2023-11-29 08:06:36 25 4
gpt4 key购买 nike

我有 3 个 jsp 页面(index.jsp、result1.jsp、result2.jsp) 和一个 servlet。处理如下:

索引.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);

结果1.jsp

//从 servlet 中获取数据并在 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:

结果2.jsp

String w=request.getParameter("somestring");
out.println(w);

我想在此处(在 result2.jsp 中)提供一个后退按钮,以便在单击后退按钮 后,它将带我到result1.jsp 我可以在其中看到之前显示的数据(out.println(retrieved result from servlet);)。但是,当我单击浏览器后退按钮(在 result2.jsp 中)时,每次都会出现警报 "Confirm Form Resubmission" 然后我重新加载该页面以查看 (out.println(retrieved result来自 servlet);),我想避免这个警报,我该如何避免呢?我怎样才能在没有任何警报的情况下直接看到该页面?

最佳答案

我认为您的问题出在您放入 servlet 中的“转发”操作。 “转发”只发生在服务器上,浏览器不知道服务器上发生了什么。事实上,即使您在 result1 页面上,您也应该在 url 栏中看到“MYSERVLET Url”。因此,当您继续访问 result2.jsp 时,单击“后退”只会让您再次访问 Servlet url,而不是“result1.jsp”。由于您的 servlet 是表单提交的目标,您会收到该警报。

为避免这种情况,您应该在您的 servlet 中尝试使用“redirect”或“sendRedirect”而不是“forward”。在这种情况下,您的浏览器将知道地址的更改,您也可以使用后退按钮。

但是请注意,通过重定向,您发送给 servlet 的所有请求数据都不能直接传递给 result1.jsp,您应该将它们保存在 Session 中。尝试阅读 this .

关于java - 在jsp中添加后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10794027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com