能否详细的描述安全的退出登录过程?请求发送,cookie的清理等。

解决方案 »

  1.   

    我这没环境,Java 有除cookie的方法,
      

  2.   

    就把Cookie中的数据清除就行了一般这种对象都有销毁的方法的
      

  3.   

    请用session的invalida()方法。
    或者设置session的最长生命周期为0.
      

  4.   


    session.invalidate();//销毁当前session,就是销毁该用户对应会话的一切信息
      

  5.   

       就是调用session的invalidate()方法,一般情况下 ,不用去消除cookies的   如果要消除cookies的话有调用消除cookies的方法    你查一下吧,,这个我忘了
      

  6.   

    1、客户端发送退出登录请求
    2、服务端销毁当前的session,并清除cookie,响应
    是不是这有这两步?
      

  7.   

    session的invalidate()方法 就可以了,其他的不用管了,java的回收机制都搞定了
      

  8.   

    invalidate() 调用这个方法就可以了吧.反正我没用别的
      

  9.   

    就直接销毁当前的session就行了?
      

  10.   


    请用session的invalida()方法。
    或者设置session的最长生命周期为0.

    这个方法以前我试过,退出以后,虽然session中保存的东西已经清空。
    但是我在地址栏再次输入登录后的地址,仍然能够进入。这个时候我再次刷新的时候却提示需要登录。求解:
    为何还能进一次?
      

  11.   

    那不是session的问题,那是浏览器缓存,浏览器已经记住你的用户名和密码了!
      

  12.   


    自己写过滤器,判断请求的URL。
    package web;import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;/**
     * Servlet Filter implementation class FilterLogin
     */
    public class FilterLogin implements Filter {    /**
         * Default constructor. 
         */
        public FilterLogin() {
            // TODO Auto-generated constructor stub
        } /**
     * @see Filter#destroy()
     */
    public void destroy() {
    // TODO Auto-generated method stub
    } /**
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpRequest=(HttpServletRequest)request;
    HttpServletResponse httpResponse=(HttpServletResponse)response;
    if(httpRequest.getSession(false)==null||httpRequest.getSession().getAttribute("sysUser")==null){
    if(httpRequest.getRequestURI().equals(httpRequest.getContextPath() + "/Login.jsp")){
    chain.doFilter(request, response);
    }
    else{
    httpResponse.sendRedirect(httpRequest.getContextPath() + "/Login.jsp?ErrorInfo=" + httpRequest.getAttribute("ErrorInfo"));
    }
    }else{
    chain.doFilter(request, response);
    }
    } /**
     * @see Filter#init(FilterConfig)
     */
    public void init(FilterConfig fConfig) throws ServletException {
    }}
      

  13.   


    你可以在页面设置<%      
     response.setHeader("cache-control","no-cache");
     response.setHeader("cache-control","no-store");
     response.setHeader("expire","0");
     response.setHeader("progma","no-cache"); 
      %>
    让浏览器不缓存你的session中的信息
    这样你退出之后就不会再访问了,还有就是你写个过滤器,在退出之后,如果有后退操作的话,可以让它直接转到你的登录页面
      

  14.   

    很搞笑啊 
    登录时写入cookie 退出时清除cookie
    那cookie有什么用??
      

  15.   

    你退出时把Session清除掉,另外写一下过滤器,如果Session中没值就强行跳转到登陆界面,或是要求登陆!
      

  16.   

    如果 退出要清除cookie 那就不要写cookie啦 ,都起不作用 
      

  17.   

    立即销毁Session 
    考虑到有 安全退出 功能的应用,一般不会对cookie有操作,所以没必要考虑cookie 否则这样的安全系统设计是有问题的
      

  18.   

    request.getSession.removeAttribute("LOGIN_USER");