今天写了个,从cookie中取出账号密码进行自动登录的功能。 在login.jsp中写java代码,直接取出cookie ,然后转发到 LoginServlet进行转发和传值,其中用get方法传过去 账号 和密码,对于remember 没有进行传值。
<%
String username = "";
String password = "";
Cookie[] cookies = request.getCookies();
Cookie cookie = CookieU.get_cookie(cookies, "username");
Cookie cookie2 = CookieU.get_cookie(cookies, "password");
if ( cookie!= null ) {
username = cookie.getValue();
if(cookie2!= null ){
password= cookie2.getValue();
//既然有账号密码 则直接自动登录 下面失败
request.getRequestDispatcher("/LoginServlet?username="+username+"&password="+password).forward(request, response);
}
}
if (session.getAttribute("username") != null) {
username = (String) session.getAttribute("username");
}
String username="";
String password="";
String remember="true";
if(request.getParameter("username")!=null) {
username = request.getParameter("username");
}
if(request.getParameter("password")!=null) {
password = request.getParameter("password");
}
if(request.getParameter("remember")!=null) {
remember = request.getParameter("remember");
}
由于进行了直接跳转,导致无法取到html中的表单的选择框的元素remember 。导致 remember = request.getParameter("remember"); 为NULL,所以getParameter时会空指针异常。
因此为了安全,这里必须进行判断和初始化。
网友评论