Servlet cookie session总结

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);
		}
	   
	}

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值