从JSP 中getRequestDispatcher 转发到servlet空指针异常

今天写了个,从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时会空指针异常。

因此为了安全,这里必须进行判断和初始化。

你可能感兴趣的:(从JSP 中getRequestDispatcher 转发到servlet空指针异常)