避坑——request.getSession().setAttribute与request.setAttribute的区别

避坑——request.getSession().setAttribute与request.setAttribute的区别_第1张图片

 刚开始不理解这个区别,导致每次前台取到的验证码总是有差别;坑———所以也记录下

 

equest.setattrbute()顾名思义只能在一个request内有效,如果重定向回客户端,将取不到值。request.getsession.setattribute()则可以通过jsessionid得到自己的session,进而取回其中的值,即使重定向回客户端也无所谓.

 

第一个是保存在session里 
第二个是保存在request里

 

了解一下Jsp里面的内置对象,Google   Please   ! 
request、response、page、session、application、out、exception、pageContent、config。 

page对象在当前页面有效。 
session在一次会话期内有效,例如:访问一个论坛,登陆后,你的用户名等信息被保存到session中,在session过期之前或你关闭这个网页前,用户名信息都可以通过request.getSession().getAttribute()方式获得。 
request在当次的请求的url之间有效,例如,你请求某个servlet,那么你提交的信息,可以使用request.getAttribute()方式获得,而当你再次跳转后,这些信息将不存在。 
application在服务器开启后,一直保持有效状态,直到服务器关闭。

 

request.getSession().setAttribute("xxx",object);//我个人觉得主要用来跨页面间要传递数据时使用

request.setAttribute("xxx",object);//用来配合struts前台标记非常有用
 

你可能感兴趣的:(异常,session,setAttribute)