Cookie的简单使用

在JSP中,使用cookie,有以下几个步骤:

1.使用page指令导入类javax.servlet.http.cookie

<%@ page import="javax.servlet.http.Cookie" %>

2.创建Cookie对象

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

3.写入Cookie

在创建Cookie对象后,我们使用response对象的addCookie()方法实现写入cookie,代码如下:

response.addCookie(newCookie);

4.读取Cookie

JSP通过response对象的addCookie方法写入Cookie后,读取时将会调用JSP中的request对象的getCookies方法,该方法将会返回一个HTTP请求头中的内容对应的cookie对象数组,因此必须要通过遍历的方式进行访问.

 必须使用重定向,才可以在客户端写入cookie.

下面的代码是实现:用户登录成功后,将用户的信息保存到cookie中,然后在欢迎页面中,读取并显示。

登录页面login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>用户登录</title>
  </head>
  <body>
       <form  name="loginForm" method="post" action="doLogin.jsp">
              <table>
                    <tr>
                        <td>用户名:</td>
                        <td><input type="text" name="userName"/></td>
                    </tr>
                    <tr>
                       <td>密码:</td>
                       <td><input type="password" name="pwd"/></td>
                    </tr>
                    <tr>
                        <td colspan="2"><input type="submit" value="登录"/></td>
                    </tr>
              </table>
       </form>
  </body>
</html>

登录处理页面:doLogin.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>登录处理页面</title>
  </head>
  
  <body>
      <%
        request.setCharacterEncoding("UTF-8");
        String name=request.getParameter("userName");
        String pwd=request.getParameter("pwd");
        if("sa".equals(name.trim())&&"123".equals(pwd.trim())){
        	//以KeyValue的形式创建Cookie
        	Cookie uname=new Cookie("uname",name.trim());
        	response.addCookie(uname);
        	response.sendRedirect("welcome.jsp");
        }
      %>
  </body>
</html>


欢迎页面:weclome.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="javax.servlet.http.Cookie" %>
<html>
  <head>
    <title>欢迎页面</title>
  </head>
  <body> 
         <%
           //获取请求中的Cookie,以数组方式保存
           Cookie cookies[]=request.getCookies();
          //循环遍历数组,得到key为"uname" 的Cookie
          for(int i=0;i<cookies.length;i++){
        	  Cookie ucookie=cookies[i];
        	  if(ucookie.getName().equals("uname")){ //判断Cookie的名称
        		  //获取key对应的Value,输出显示
        		  out.println("欢迎你 :"+ucookie.getValue());
        	  }
          }
       %>  
  </body>
</html>
原文地址:https://www.cnblogs.com/wuyida/p/6300397.html