在login.jsp里有
session.setAttribute("id",userid);
session.setAttribute("pvw",pvw);
session.setAttribute("name",name);
session.setAttribute("psw",psw);
在logout.jsp里设
session.setAttribute("id",null);
session.setAttribute("pvw",null);
session.setAttribute("name",null);
session.setAttribute("psw",null);
虽然结果是session值已经不存在了。但是logout.jsp提示出错:
java.lang.NullPointerException
at _0002flogout_0002ejsplogout_jsp_15._jspService(_0002flogout_0002ejsplogout_jsp_15.java:80)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:282)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
at org.apache.tomcat.core.Handler.service(Handler.java:287)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:484)
原因何在?????
|
先检查一下你的session是否还存在还是已经为null了,这个问题可能是session为null引起的.谢谢
|
试试session.invalidate();
|
session.removeAttribute("id");
session.removeAttribute("pvw");
session.removeAttribute("name");
session.removeAttribute("psw");
|
用removeAttribute()
|
当然不能放null了,一般都用removeAttribute(),不过最好的应该是用invalidate()