Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在jsp中添加后退按钮_Java_Javascript_Jsp_Servlets_Back Button - Fatal编程技术网

Java 在jsp中添加后退按钮

Java 在jsp中添加后退按钮,java,javascript,jsp,servlets,back-button,Java,Javascript,Jsp,Servlets,Back Button,我有3个jsp页面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 nam

我有3个jsp页面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>
result1.jsp

//从servlet检索数据并在result1.jsp中显示数据,同时将相同的值传递给result2.jsp

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

我想在result2.jsp中提供一个后退按钮,这样在单击后退按钮后,我将进入result1.jsp,在那里我可以看到之前显示的dataout.printlnretrieved result from servlet;。但是,当我单击result2.jsp中的browser back(浏览器返回)按钮时,每次发出警报时,请确认表单重新提交,然后我将重新加载该页面以查看out.printlnretrieved result from servlet;,我想避免此警报,如何避免?我怎样才能在没有任何警告的情况下直接看到该页面呢?

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

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


但请注意,通过重定向,您发送到servlet的所有请求数据都不能直接传递到result1.jsp,您应该将它们保存在会话中。试着读一读。

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

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


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

请使用session.setAttributename,value将会话中的所有数据保存在第1页上;登陆到第二页后,点击按钮指定第一页的地址,不包含任何数据,要在第一页显示以前的数据,请使用session.getAttributename;
因此,每次在页面之间切换时,它都会重新加载页面并获取会话值。

请使用session.setAttributename,value将会话中的所有数据保存在第1页上;登陆到第二页后,点击按钮指定第一页的地址,不包含任何数据,要在第一页显示以前的数据,请使用session.getAttributename; 因此,每次在页面之间切换时,它都会重新加载页面并获取会话值

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:
String w=request.getParameter("somestring");
out.println(w);