日期:2014-05-18  浏览次数:20671 次

JSP session问题大家帮忙,在下是菜鸟如有不对的地方请谅解
我在用户登陆之前我进行如下操作
String   username   =   (String)session.getAttribute( "userName ");
if(username.equals(UserName))//如果username的值等于登陆页面传来的UserName的值的话

{
response.sendRedirect( "../Login/LoginPage.jsp?msg=nologin ");
//跳转到登陆页面
}


登陆成功后
session.setAttribute( "userName ",UserName);

可是出现如下异常
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)



------解决方案--------------------
还没有跳转的时候就需要session.setAttribute( "userName ",UserName);
------解决方案--------------------
这个异常不全阿
还有
登陆成功后
session.setAttribute( "userName ",UserName);你登陆成功后才这样做,不知道你这一句
String username = (String)session.getAttribute( "userName ");怎么取呢?
------解决方案--------------------
session中userName的值是在什么时候设置的呢.
------解决方案--------------------
应该是空值导致的错误吧.因为username为null所以出错,或者你反过来写
if(UserName.equals(username))
------解决方案--------------------
这好像是jsp页面的问题,应该还没有执行到String username = (String)session.getAttribute( "userName ");这句报的异常;你还是调试一下看,jsp页面是否把值username传过来了;所以仔细看一下你的jsp页面,而且你的验证逻辑也不太对,应该是先登陆,在访问其他页面的时候才要判断session中的用户是否合法;
------解决方案--------------------
你判断一下username是不是等于 " "或NULL.