郁闷死了。一个
登录有效期的问题。3,4天了,都没有搞定。
我都不适合做技术了。
[b]问题补充:[/b]
我在action里面,把用用户名,用户id取出来放到cookie里面。
然后写了一个filter过滤器,专门读cookie,我想把用户名和用户id取出来,把用户名和用户id封装到一个javabean对象里面,然后放到session里面,供其他的页面调用。
现在问题的关键是,根本读不出写入cookie时候的用户名和用户id。
都不知道为什么!!!
[b]问题补充:[/b]
我直接贴我写的代码吧。
1.EnpAction处理企业用户登录信息的。(在这里把用户信息写入cookie)
if("enplogin".equals(actionType)){ //企业登录
SJForm sjbean = (SJForm) form; //struts取用户userid,username
if(sjbean!=null){
enpform=enpdao.login(sjbean); //数据库检测是否有值
}
if(enpform.getUsername()!=null){ //如果有值
session.setAttribute("enpform", enpform); //先放session里
Cookie cookie1=new Cookie("username",enpform.getUsername());
Cookie cookie2 =new Cookie("enpid",String.valueOf(enpform.getId()));
int maxAge=0;
if(enpform.getCookies()!=null){
maxAge=Integer.parseInt(enpform.getCookies())*24*60*60;//秒
}
cookie1.setMaxAge(maxAge);
cookie2.setMaxAge(maxAge);
cookie1.setPath("/");
cookie2.setPath("/");
response.addCookie(cookie1);
response.addCookie(cookie2);
forwardstr="enpmanage";
2.过滤器类(我只贴出doFilter()方法代码。
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession session=request.getSession();
SJForm enpform=new SJForm();
Cookie temp=null;
Cookie[] cookies=request.getCookies();
int cookielen=0;
if(cookies!=null)
cookielen=cookies.length;
for(int i=0;i<cookielen;i++){
temp=cookies[i];
if("username".equals(temp.getName())){
enpform.setSjname(temp.getValue());
}
if("enpid".equals(temp.getName())){
enpform.setId(getPara.gotoInt(temp.getValue(),0));
}
session.setAttribute("enpform", enpform);
}
filterChain.doFilter(servletRequest, servletResponse);
}
可是我发现我读不出username,和enpid来。
大家觉得我的写法行吗
[b]问题补充:[/b]
To:fishbottle (高级程序员)
filter类不是总在action之前的吗?
To:litianyi520 (初级程序员)
在action里面写cookie的时候,就写了有效时间了。
登录的时候还有必要把登录时间记录下来比较吗
有效期过后,就取不出cookie了啊
[b]问题补充:[/b]
愁死我了。我是在过滤器中把值从cookie取出来。
然后放到session里,这样,我在任何一个页面,都能从session把用户名和id得到。
可以象javaeye似的提示,"欢迎你,mandyyuan"
我这样可行吗?
[b]问题补充:[/b]
象javaeye这样的,是怎么做到随时得到用户信息的啊。
[b]问题补充:[/b]
To:fishbottle (高级程序员)
第一次登录的时候,不是已经把在action中把cookie写入了吗
下次访问这个网站的时候,filter自然,就会取出cookie啊。
[b]问题补充:[/b]
我现在测试:在jsp里面写cookie,在jsp里面读cookie都是可以用getName(),getValue()把注入的东西取出来。
可我要实际在action里面写cookie,在jsp里面读cookie,就读不出来name,value
我用的struts框架,其他框架都没有
这是什么原因呢?