Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
Jsp 将页面重定向到自定义页面,而不是默认显示“自定义”;“网页已过期”;使用后退/前进按钮时_Jsp_Servlets - Fatal编程技术网

Jsp 将页面重定向到自定义页面,而不是默认显示“自定义”;“网页已过期”;使用后退/前进按钮时

Jsp 将页面重定向到自定义页面,而不是默认显示“自定义”;“网页已过期”;使用后退/前进按钮时,jsp,servlets,Jsp,Servlets,我正忙于一个只有一个页面的网站,只有在登录后才能访问:home.jsp。一旦用户使用有效会话登录,如果他按下浏览器上的“后退”按钮,那么他应该被重定向到login.jsp,如果他按下浏览器的“前进”按钮,则再次被重定向到login.jsp。没有登录,他应该无法访问home.jsp。在进行了一些搜索之后,我实现了: <% response.setHeader ( "Cache-Control","no-cache,no-store,must-revalidate"); response.s

我正忙于一个只有一个页面的网站,只有在登录后才能访问:
home.jsp
。一旦用户使用有效会话登录,如果他按下浏览器上的“后退”按钮,那么他应该被重定向到
login.jsp
,如果他按下浏览器的“前进”按钮,则再次被重定向到
login.jsp。没有登录,他应该无法访问
home.jsp
。在进行了一些搜索之后,我实现了:

<%
response.setHeader ( "Cache-Control","no-cache,no-store,must-revalidate");

response.setHeader("Pragma","no-cache");

response.setDateHeader ( "Expires", 0)
%>

home.jsp
页面上,按下“前进”按钮时,显示网页已过期,但我要查找的是我的cutom页面,类似于
sessionExpired.jsp
的内容是再次登录

请帮助我解决此问题。

实现此模式。因此,每次终端用户发送(成功的)POST请求时,都要向目标页面发送重定向。这样,“后退”按钮将指向重定向的GET请求,而不是POST请求(因为您指示浏览器不缓存它,所以POST请求显然已过期)

例如,在处理登录的
doPost()
方法中:

User user = userService.find(username, password);

if (user != null) {
    request.getSession().setAttribute("user", user);
    response.sendRedirect("nextpage.jsp"); // Here, you need to send a redirect to landing page after login.
}
实现该模式。因此,每次终端用户发送(成功的)POST请求时,都要向目标页面发送重定向。这样,“后退”按钮将指向重定向的GET请求,而不是POST请求(因为您指示浏览器不缓存它,所以POST请求显然已过期)

例如,在处理登录的
doPost()
方法中:

User user = userService.find(username, password);

if (user != null) {
    request.getSession().setAttribute("user", user);
    response.sendRedirect("nextpage.jsp"); // Here, you need to send a redirect to landing page after login.
}

@BalusC--谢谢,我可以使用与
requestDispatcher
方法相同的逻辑吗?在该方法中,我将通过rdObj.forward(请求,响应)-requestDispatcher对象指向目标。这不会发送重定向。它发送一个转发。你明白其中的区别吗?@BalusC--谢谢,我可以使用与
requestdispather
方法相同的逻辑吗?我将通过rdObj.forward(request,response)---requestdispather对象指向目标。这不会发送重定向。它发送一个转发。你明白其中的区别吗?