session失效问题

设置session时间过期后(10min),但是如果刚好在jsp页面中获取session内容 比如
[code="java"]
Users user = (Users) session.getAttribute("Users");
String userName= user.getUserName(); [color=red]//这里会报空指针 [/color]
[/code]

还有类似的.java类里面 也会报空指针 异常 这个大家有没比较好的解决办法。

还有,一般从session这样取的话,还是判断null为好。

你这个程序得加一个session判断的过滤器,当发觉session过期的时候,直接跳转到登录或首页页面,这样就不会出现了。

把你session过滤器的代码发出来看看

没有更好的办法,现在顶多只能在web.xml里面配置一个500错误的提示页面,或者配置一个nullporter异常的专门处理页面。

你所指的刚好发生的机率那是相当低的,如果不想在多个页面重复判断,那么你可以自己写个标签来做这样的事情

[quote]Users user = (Users) session.getAttribute("Users");
String userName= user.getUserName(); [color=red]//这里会报空指针 [/color][/quote]

session超时后,你取session.getAttribute("Users");取到的值肯定为null

即user=null,因user为null,所以user里面没有任何属性,比如你的get、set方法,你可以打个断点看看user的值,有没有这些属性和方法。拿一个为null的object去取getUserName();自然就会报空指针异常了。

加个简单的判断就ok了
[code="java"]if(user!=null){
String userName= user.getUserName();
}[/code]

这个没有办法避免,最好还是加上null的判断,lz耐心点 :wink:

那你加上try catch捕捉这个异常吧,具体怎么处理看你自己的需求咯。

[quote]那你加上try catch捕捉这个异常吧,具体怎么处理看你自己的需求咯。[/quote]
这还不如加null判断哪……
话说,从session获取的值都要判断是否为null,这个不是常识么?……

[code="java"]
1.if(user!=null){

2.String userName= user.getUserName();

3.}

最后在放进session中,页面在从session中取出来。。。
[/code]

不想报这个异常的话你可以try catch自己处理,那就不会显示出来了。比如异常了你可以什么都不做,catch中不要写语句就行了。

一般session取出后都会判断null的。过期之后都是跳转到一个提示页面提示用户重新登录!!!