I am trying to make a log out form in java and I am using cookies. But the problem is that when I hit the back button it redirects me to the last secured page witch I don't want.
Here is my code: servlet:
@WebServlet(name="LogOut", urlPatterns={"/LogOut"})
public class LogOut extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse response1)
throws ServletException, IOException {
Cookie[] cookies = req.getCookies();
if(cookies != null){
for(Cookie cookie : cookies){
if(cookie.getName().equals(req.getSession().getAttribute("email"))){
System.out.println( req.getSession().getAttribute("email") +cookie.getValue());
}
cookie.setMaxAge(0);
response1.addCookie(cookie);
}
}
//invalidate the session if exists
HttpSession session = req.getSession(false);
System.out.println("User="+req.getSession().getAttribute("email"));
if(session != null){
session.invalidate();
}
//no encoding because we have invalidated the session
response1.sendRedirect("index.html");
}
}
filter:
@WebFilter("/NoCacheFilter")
public class NoCacheFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); //Proxies.
chain.doFilter(req, res);
}
}
jsp:
<form action="logout" method="post">
<a><button type = "submit" class = "myprofile>Deconectare</button></a>
</form>
web.xml:
<servlet>
<servlet-name>logout</servlet-name>
<servlet-class>user.LogOut</servlet-class>
</servlet>
<filter>
<filter-name>nocachefilter</filter-name>
<filter-class>user.NoCacheFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>nocachefilter</filter-name>
<url-pattern>/logout</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>logout</servlet-name>
<url-pattern>/logout</url-pattern>
</servlet-mapping>
Could anyone help me?Thanks!