java 开发,然后我想问下,jsp 页面那个checkbox 框记住密码是怎么实现的?

那为朋友能解释下,谢谢。... 那为朋友能解释下,谢谢。 展开
 我来答
HONG仔
推荐于2016-05-16 · TA获得超过433个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:326万
展开全部
好的,楼主,我现在把实现这个业务的简单化示例做出来过你。

要实现题目这个功能,我们需要使用Cookie浏览器缓存来做到。Cookie与Session的最大不同,就在于它们的生命周期,Cookie通过设置后,生命周期可以与Session一样,或者比它长久。

通常来说,根据我的习惯,对于一些通用的业务能够,我希望把它们封装到一个工具类里面,使用方法就是直接调用它的静态方法。

CookieTool.java 源代码:

/**
* 设置cookie(接口方法)
* @param response
* @param name cookie名字
* @param value cookie值
* @param maxAge cookie生命周期 以秒为单位
*/
public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
Cookie cookie = new Cookie(name,value);
cookie.setPath("/");
if(maxAge>0) cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}

/**
* 根据名字获取cookie(接口方法)
* @param request
* @param name cookie名字
* @return
*/
public static Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}

/**
* 将cookie封装到Map里面(非接口方法)
* @param request
* @return
*/
private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}

好了,工具类的静态方法已经定义好了。

我先假定楼主对表现层提交表单到业务层是有概念的,

这里存在两种情况:

(1)客户端没有登录记录,则进入登录页面

(2)客户端存在有效的登录记录,进入登录后的页面。

因此在显示登录页面之前就要通过一个业务方法进行判断,其中最核心的是:

Cookie cokLoginName = CookieTool.getCookieByName(request,"loginName");
Cookie cokLoginPwd = CookieTool.getCookieByName(request,"loginPwd");

if (cokLoginName != null && cokLoginPwd != null && cokLoginName.getValue()!=null && cokLoginPwd.getValue()!=null){
String loginName = cokLoginName.getValue();
String loginPwd = cokLoginPwd.getValue();
//检查到客户端保存了用户的密码,进行该账户的验证
//这里要使用你自己的账户验证方法
//如果账户验证成功,则跳转到登录成功的页面
//如果账户验证失败,则
CookieTool.addCookie(response,"loginName",null,0); //清除Cookie
CookieTool.addCookie(response,"loginPwd",null,0); //清除Cookie
//然后跳转到登录页面
}

其次就是在登录JSP页面的表单所提交到的登录Action。这里假设表单提交到的是Servlet,读取表单参数楼主应该没有问题吧?我这里只关注和插入Cookie代码。

插入的地方在账户密码的正确性经过验证,在跳转页面之前。假设储存用户输入的帐号和密码字段分别为String username,String password。

int loginMaxAge = 30*24*60*60; //定义账户密码的生命周期,这里是一个月。单位为秒
if ( 单选框 ) {
CookieTool.addCookie(response , "loginName" , username , loginMaxAge);
CookieTool.addCookie(response , "loginPwd" , password , loginMaxAge);
}

希望我提供的工具类和方法会对楼主有帮助!有什么问题请给我留言!谢谢!
百度网友1b03f64
2011-01-18 · 超过18用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:61.4万
展开全部
利用cookie,把用户名密码保存在客户访问机,下次再开的时候先做处理,从cookie里面读出来显示在页面上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
諞漓
2011-01-18 · TA获得超过617个赞
知道小有建树答主
回答量:1529
采纳率:0%
帮助的人:861万
展开全部
用cookies 实现 密码提交后 服务器给本地发回一个cookies 本地记录保存密码 下次登录网页时 自动提交cookies 实现自动登录 百度一下就有例子了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泼范推9
2011-01-18 · 超过17用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:0
展开全部
肯定是房cookie里面!session当你把ie关闭的时候就没有了。cookie是保存在你本地的。
Cookie cookieId = new Cookie("password",password);
cookieId.setMaxAge(30*60*60*24);
response.addCookie(cookieId)
这样密码就保存在本地cookie文件里面了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
282518588
2011-01-18 · TA获得超过688个赞
知道小有建树答主
回答量:1383
采纳率:50%
帮助的人:370万
展开全部
可以放到session中 我理解的大体是这样:
可以用用户名做一下判断 如下----
js代码中:
if(用户名==xxxx){
document.form[0].getById("") = session中的值!
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式