java 登录记住我

ansha886 2010-09-26 10:14:06
平时大家上网登录的时候都会有在“这台电脑上记住我”这个功能,
如果第一次登录了以后选择了记住我下次访问任何一个页面都会直接登录了。
现在我功能上是实现了,但只是打开首页的时候用脚本把cookie读取出来登录。
我要怎么做到每一个请求都能实现登录呢,总不能在每一个页面上都用脚本加载吧。

我的方案是:比如我请求了index.do,用struts拦截器拦截一下这个方法先去读取cookie登录,
如果是请求index1.do我还得写一个拦截器去请求。能不能就写一个拦截或者是过滤器拦截所有的*.do请求呢?

有做过的朋友能提供以下思路吗,谢谢大家。
...全文
283 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kk4219 2010-09-27
[Quote=引用 9 楼 whut_lcy 的回复:]
既然你说到了.do,那么自然是struts了,不过struts有个非常流行的做法,LZ怎么会不知道?

常规做法:做一个抽象类BaseAction让它继承Action,覆盖Action的execute方法,然后声明一个抽象的doProcess方法。
其他Action类都继承并实现BaseAction,就可以达到了。
框架如下:

Java code
public abstract ……
[/Quote]
9楼大哥的做法太专业了...受教了
回复
ansha886 2010-09-27
谢谢大家的回答,我只是想知道大家平常是怎么做,这样做是不是好不好,
给分
回复
andesen 2010-09-27
Filter过滤器
回复
emon123 2010-09-27
[Quote=引用 9 楼 whut_lcy 的回复:]
既然你说到了.do,那么自然是struts了,不过struts有个非常流行的做法,LZ怎么会不知道?

常规做法:做一个抽象类BaseAction让它继承Action,覆盖Action的execute方法,然后声明一个抽象的doProcess方法。
其他Action类都继承并实现BaseAction,就可以达到了。
框架如下:


Java code
public abstrac……
[/Quote]

9楼的做法可行,偶们项目就是这么多的。
回复
youjianbo_han_87 2010-09-27
就是将登陆信息保存到客户端的 cookie里面。下次登陆时,先读取客户端cookie。。。如果有记录,并验证正确,就直接跳转
回复
whut_lcy 2010-09-27
public class MyAction extends BaseAction{
public abstract ActionForward doProcess(...){
//你的业务代码
}
}

复制过来的,这个abstract去掉
回复
whut_lcy 2010-09-27
既然你说到了.do,那么自然是struts了,不过struts有个非常流行的做法,LZ怎么会不知道?

常规做法:做一个抽象类BaseAction让它继承Action,覆盖Action的execute方法,然后声明一个抽象的doProcess方法。
其他Action类都继承并实现BaseAction,就可以达到了。
框架如下:

public  abstract class BaseAction extends Action{


/* 覆盖Action的execute方法 **/
public ActionForward execute(.....//4个参数)throws Exception{

boolean logged = .....//在这里做你的登陆验证,一般都是判断session中是否有用户信息。
if(logged){
return doProcess(...//4个参数);
}else{//没登陆,forward到登陆界面
return new ActionForward("...")//导航到登陆界面
}
}
}

/* 抽象方法,子类必须实现。子类可以在这里做你的业务 */
public abstract ActionForward doProcess(...);//

public class MyAction extends BaseAction{
public abstract ActionForward doProcess(...){
//你的业务代码
}
}
回复
f0501412727 2010-09-27
写个filter就可以了
回复
funfun5433 2010-09-27
mark 占座观望
回复
zcy9979420 2010-09-27
关注中,我也想知道
回复
simaa0106 2010-09-27
感觉可以用onload函数,加载的时候直接把Cookie里面的数据读入内存。

然后在后台直接读取内存中的用户数据,看是否接收到用户数据。

如果收到直接转跳,不用点登录按钮。
回复
RefreshingBreeze 2010-09-27
session
回复
xinlan1022 2010-09-27
过滤器
回复
小耗子 2010-09-27
我也想知道,顶
回复
生活 2010-09-27
关注下。。。
回复
ansha886 2010-09-27
[Quote=引用 9 楼 whut_lcy 的回复:]
既然你说到了.do,那么自然是struts了,不过struts有个非常流行的做法,LZ怎么会不知道?

常规做法:做一个抽象类BaseAction让它继承Action,覆盖Action的execute方法,然后声明一个抽象的doProcess方法。
其他Action类都继承并实现BaseAction,就可以达到了。
框架如下:


Java code
public abstrac……
[/Quote]
谢谢这位大哥
回复
ansha886 2010-09-27
[Quote=引用 8 楼 f0501412727 的回复:]
写个filter就可以了
[/Quote]
谢谢这位大哥,
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-26 10:14
社区公告
暂无公告