mandyyuan 2008-11-06 11:25
浏览 314
已采纳

我发现我解决不了技术难题。我都觉得我不该做技术了。

郁闷死了。一个
登录有效期的问题。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框架,其他框架都没有

这是什么原因呢?

  • 写回答

15条回答 默认 最新

  • iteye_2429 2008-11-06 11:59
    关注

    登录有效期?
    登陆时记录访问时间放在数据库中待用
    写个filer.
    定个规则.
    发现访问时间不合规则就踢出去

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(14条)

报告相同问题?

悬赏问题

  • ¥15 武汉岩海低应变分析软件,导数据库里不显示波形图
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。
  • ¥30 win c++ socket
  • ¥15 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题