登录模块(二)
一.采用properties文件存放系统配置项
1.新建一个diary.properties文件,文件内容是键值对的方式,中间用等号连接
2.新建一个PropertiesUtil类,写一个方法getValue(String key)通过key获得value。new一个properties类,先获取一个输入流,然后加载输入流load(),最后通过一个key返回一个值。
3.修改DbUtil
二.采用MD5加密对密码进行加密
1.封装一个MD5Util,添加一个方法EncoderPwdByMd5(string str)。使用java.security的包,md5使用MessageDigest 的getinstace(“MD5”)方法,new一个base64encoder方法,返回md5值。
代码:
2.修改userDao里的密码登录
三.实现记住用户名和密码Cookies功能
1.在loginServlet中新new一个remember,取request里的值
2.如果currentUser不为空的话,且checkbox被标记了,调用rememberMe()方法
3.封装一个方法rememberMe(String userName,String password,HttpServletResponse response),new一个Cookie的user实例,值是一个键值对,使用setMaxAge()方法确认保存时间,在response里调用addCookie方法
4.在login.jsp里添加java代码。这里分为两种情况,用户第一次登录页面和用户输入错误的用户名密码返回的登录页面。通过后台返回的user是否为空来判断,如果是空的话,说明是第一次登录。定义一个cookie数组,循环从cookie里数组取值。
代码:
Cookie[] cookies = request.getCookie();
for(int i = 0;cookies!=null&&i
if(cookies[i].getName().equal("user")){
userName = cookies[i].getValue().split("-")[0];
password = cookies[i].getValue().split("-")[1];
}
}
如果userName和password为空的话,赋值“”。
将取到的值放到page里面,优先值最高的。使用pageContext的setAttribute方法。
1.新建一个diary.properties文件,文件内容是键值对的方式,中间用等号连接
2.新建一个PropertiesUtil类,写一个方法getValue(String key)通过key获得value。new一个properties类,先获取一个输入流,然后加载输入流load(),最后通过一个key返回一个值。
3.修改DbUtil
二.采用MD5加密对密码进行加密
1.封装一个MD5Util,添加一个方法EncoderPwdByMd5(string str)。使用java.security的包,md5使用MessageDigest 的getinstace(“MD5”)方法,new一个base64encoder方法,返回md5值。
代码:
MessageDigest md5 = MessageDigest.getInstance("MD5");
BASE64Encoder base64en = new BASE64Encoder();
return base64en.encode(md5.digest(str.getBytes("utf-8")));
BASE64Encoder base64en = new BASE64Encoder();
return base64en.encode(md5.digest(str.getBytes("utf-8")));
2.修改userDao里的密码登录
三.实现记住用户名和密码Cookies功能
1.在loginServlet中新new一个remember,取request里的值
2.如果currentUser不为空的话,且checkbox被标记了,调用rememberMe()方法
3.封装一个方法rememberMe(String userName,String password,HttpServletResponse response),new一个Cookie的user实例,值是一个键值对,使用setMaxAge()方法确认保存时间,在response里调用addCookie方法
4.在login.jsp里添加java代码。这里分为两种情况,用户第一次登录页面和用户输入错误的用户名密码返回的登录页面。通过后台返回的user是否为空来判断,如果是空的话,说明是第一次登录。定义一个cookie数组,循环从cookie里数组取值。
代码:
Cookie[] cookies = request.getCookie();
for(int i = 0;cookies!=null&&i
}
如果userName和password为空的话,赋值“”。
将取到的值放到page里面,优先值最高的。使用pageContext的setAttribute方法。