我有一种情况 - 从某个页面注销后,如果有人在浏览器中单击“返回”按钮,它会自动再次进入后退页面。在Logout.java(Servlet)中我使用:注销后如何保护我的账户?
session.invalidate();
request.getRequestDispatcher("index.jsp").forward(request,response);
一切工作正常。但是在注销后,如果我在浏览器中单击“返回”按钮(左上角),它将返回到我所在的位置。我想要做的,如果我点击返回,那么必须说你的会话是Expiered或登录或别的东西。怎么做。请给出您宝贵的建议。
我刚刚看了一下这个&我创建一个servlet FilterURL.java:
public class FilterURL extends HttpServlet implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
//
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse hsr = (HttpServletResponse) res;
hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0.
hsr.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(req, res);
}
@Override
public void destroy() {
//
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//
}
}
而且我的web.xml:(在web应用)
<filter>
<filter-name>FilterURL</filter-name>
<filter-class>com.filter.url.sys.FilterURL</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterURL</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
,但它不会工作。我错了什么?
我从这个网页阅读:
- How to use a servlet filter in Java to change an incoming servlet request url?
- Prevent user from seeing previously visited secured page after logout
- http://tutorials.jenkov.com/java-servlets/servlet-filters.html
- servlet session , after logout , when back button of browser is pressed , again the secure page is shown
您是否使用过滤器来检查每个请求的会话状态? – Aquillo 2013-04-24 13:39:20
注销后,您可以使用JS关闭浏览器窗口,以防止出现这种情况。 – Apurv 2013-04-24 13:41:44
一旦你注销,你转到一个页面,你通过“确定”按钮提示消息。只要用户点击“确定”按钮,就关闭浏览器窗口。 – IndoKnight 2013-04-24 13:43:30