我在退出时用session.invalidate()方法销毁了当前session,但是再随便用一个账户名和正确的密码也可以登录进去,登录后显示的是退出前的账户名,大家有什么好的方法解决这个问题?怎样在直接关闭浏览器(不是正常退出)后销毁session?

解决方案 »

  1.   

    可以使用removeAttribute()方法把登录时放到Session里的对象移除!
      

  2.   

    也用过了,不行,关闭浏览器session也不会销毁,用任意一个账户名和正确的密码也能登陆。
    在登陆时加入了判断,如果不存在某账户名会提示不存在,但退出后再登陆就不提示了,不知为什么.
      

  3.   

    <%@ page language="java" pageEncoding="UTF-8"%><!-- 退出系统 --><%
    request.getSession().removeAttribute("username");
    request.getSession().invalidate();

    //设置禁止缓存 
    response.setHeader("Pragma ", "No-cache ");
    response.setHeader("Cache-Control ", "no-cache ");
    response.setDateHeader("Expires ", 0);
    // 转到登陆页面
    response.sendRedirect("admin_login.jsp");
    %>清空缓存 
      

  4.   

    Java查询中若输入#、%等关键字就会报错,是转义字符的原因吗?
    错误如下:
    2010-1-9 10:26:53 org.apache.tomcat.util.http.Parameters processParameters
    警告: Parameters: Character decoding failed. Parameter skipped.
    java.io.CharConversionException: EOF
    at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:83)
    at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:49)
    at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:412)
    at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:394)
    at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:510)
    at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters.java:267)
    at org.apache.catalina.connector.Request.parseParameters(Request.java:2453)
    at org.apache.catalina.connector.Request.getParameter(Request.java:1040)
    at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:213)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at cn.permay.SessionFilter.doFilter(SessionFilter.java:30)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Unknown Source)2010-1-9 10:26:53 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
    java.lang.NullPointerException
    at cn.permay.service.HouseService.find(HouseService.java:281)
    at cn.permay.struts.action.HouseAction.find(HouseAction.java:817)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at cn.permay.SessionFilter.doFilter(SessionFilter.java:30)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Unknown Source)
      

  5.   

    URLDecoder和URLEncoder,处理二进制。使用其加密的结果类似"%BBBC%E1%BD%BB"的字符串,这应该和java的机制有关,所有尽量避免使用“%”或“%%”传入request对象中
      

  6.   

    看此贴
    http://topic.csdn.net/u/20080102/17/eca065c9-128b-4a9d-aa34-0d94dc37a141.html