1、转发 到/login.jsp页面中,并把request手动设置msg值为“验证码错误"带到页面中
request.setAttribute("msg", "验证码错误");
request.getRequestDispatcher("/login.jsp").forward(request, response);
在/login.jsp页面中从request对象中获取msg值(Object) 强转为String
<%
String msg = (String)request.getAttribute("msg");
if(msg!=null){
out.print(msg); //向页面中添加数据
}
%>
2、得到浏览器中的Cookie值写入到用户名的Value中,用户名勾选保持
<%
//得到浏览器的cookie数据
Cookie[] cks = request.getCookies();
String username=""; //用于保持Cookie中的value值
String flag=""; //用于给记住用户名按钮勾选
if(cks!=null){
for(Cookie ck : cks){
if("username".equals(ck.getName())){ //根据cookie的name得到制定cookie对象
username=ck.getValue();//取出value值
flag="checked"; 赋值给用户名勾选
}
}
}
%>
username: <input type="text" class="form-control" name="username" id="username" value="<% out.print(username); %>" placeholder="请输入用户名">
flag: <input type="checkbox" name= "remember" <%out.print(flag); %>> 记住用户名
out.print(username); %>" placeholder="请输入用户名">
flag: <input type="checkbox" name= "remember" <%out.print(flag); %>> 记住用户名
3、勾选用户名记录到cook中
if(user != null){ //登入成功后才记录
//记住用户名
String remember = request.getParameter("remember"); //获取勾选框中 选中为on 未选中未null
//创建Cookie对象
Cookie cookie = new Cookie("username" , user.getUsername());
cookie.setPath(request.getContextPath());//表示当前项目下所有的杜能访问cookie
if(remember!=null){ //如果勾选了
cookie.setMaxAge(60*60*24*2);//设置Cookie生存时间
}else{
cookie.setMaxAge(0);//删除Cookie
}
//响应给浏览器缓存
response.addCookie(cookie);
System.out.println("程序运行经过这里");
//保持用户对象到session域对象中
request.getSession().setAttribute("user", user);
//重定向
response.sendRedirect(request.getContextPath()+"/index.jsp");
}else{
//把数据写到request中通过转发带到login.thm页面中
String msg = "用户名或密码错误";
request.setAttribute("msg", msg);
System.out.println(msg);
//因为页面需要提示信息转发
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}