jsp之cookie的基本操作&&实现用户登录cookie记录用户信息

jsp状态管理:因为http的无状态性,所以可以用session或cookie技术保存用户信息,而cookie可以记录信息可以判定注册用户是否已经登录网站,购物车的应用,浏览记录,但是有安全风险
创建cookie

Cookie cookie=new Cookie(String key,Object value);

写入cookie

response.addCookie(cookie);

读取cookie对象

Cookie[] cookies=request.getCookies();

设置cookie的有效期,以秒为单位

setMaxAge(int expiry);

对cookie进行赋值

setValue(String value);

获得值

getValue();

获得有效期

getMaxAge();

实现用户登录cookie记录用户名与密码
界面jsp

<body>
<%//用来处理显示最近的登录的用户名与密码,先判断,如果cookie不为空,就将数据显示到输入框,否则就显示空
Cookie[] cookies = request.getCookies();
String name="";
String pass="";
if(cookies!=null&&cookies.length>0) {

if (cookies != null) {
for (Cookie c : cookies) {
if (c.getName().equals("name")) {
name = c.getValue();

}
if (c.getName().equals("pass")) {
pass = c.getValue();
}
}
}
}
%>
<p>用户登录界面</p>
<form action="failure.jsp" method="post">
    用户名:<input type="text" name="user" value="<%=name%>"></br>//value用来显示输入框的内容
    密 码:<input type="password" name="pass" value="<%=pass%>"></br>

   <input type="checkbox" name="isCookie">是否记住登陆状态
    <br>
    <input type="submit" value="提交">
    <input type="reset" value="重置">
</form><br>

</body>

处理逻辑页面

<head>
    <title>404</title>
</head>
<body>
<%
  String [] isUseCookie=request.getParameterValues("isCookie");//获得选择的内容
  if(isUseCookie!=null&&isUseCookie.length>0){//如果不为空,代表选择了记住用户的密码和账号,则进行进行加入Cookie
      String name=request.getParameter("user");//获得用户名
      String pass=request.getParameter("pass");//获得密码
      Cookie nameCookie=new Cookie("name",name);//封装进cookie
      Cookie passCookie=new Cookie("pass",pass);
      nameCookie.setMaxAge(864000);//设置最大生存日期
      passCookie.setMaxAge(864000);
      response.addCookie(nameCookie);//加入response

      response.addCookie(passCookie);
  }else {//如果没有选择记住最近登录状态,就查看之前有没有记录信息,有点话,将其毁灭
      Cookie[] cookies =request.getCookies();
      if(cookies!=null) {
          for (Cookie c : cookies) {
            if(c.getName().equals("name")||c.getName().equals("pass")){
                c.setMaxAge(0);
                response.addCookie(c);
            }
          }
      }
  }

%>

用户名:<%=request.getParameter("user")%><br>
密码:<%=request.getParameter("pass")%>


</body>

在这里说一下session与cookie的区别
session: 是在服务器端保存用户信息,而且保存是object类型,随着回话的结束,存储的数据就会销毁,用来保存重要的信息
cookie: 在客户端保存用户信息,保存的是String类型,可以长期保存信息在客户端,用来保存不重要的信息

猜你喜欢

转载自blog.csdn.net/qq_43520913/article/details/106063914