Servlet Cookies处理(一)

Servlet Cookies处理(一)

Cookies是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。Java Servlet显然支持 HTTP Cookies。
识别返回用户包括三个步骤:
1、服务器脚本向浏览器发送一组Cookies。例如:姓名、年龄或识别号码等。
2、浏览器将这些信息存储在本地计算机上,以备将来使用。
3、当下一次浏览器向Web服务器发送任何请求时,浏览器会把这些Cookies信息发送到服务器,服务器将使用这些信息来识别用户。

通过Servlet设置Cookies
包括以下三个步骤:
(1)创建一个Cookie对象:你可以调用带有cookie名称和cookie值的Cookie构造函数,cookie名称和cookie值都是字符串。

Cookie cookie = new Cookie("key","value");

注意无论是名字还是值,都不应该包含空格或以下任何字符:

[ ] ( ) = , " / ? @ : ;

(2)设置最大生存周期:你可以使用setMaxAge方法来指定cookie能够保持有效的时间(以秒为单位)。下面将设置一个最长有效期为24小时的cookie。

cookie.setMaxAge(60*60*24);

(3)发送Cookie到HTTP响应头:你可以使用response.addCookie来添加HTTP响应头中的Cookies,如下所示:

response.addCookie(cookie);

修改表单数据实例,为名字和姓氏设置Cookies。

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// 扩展 HttpServlet 类
public class HelloForm extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 为名字和姓氏创建 Cookies      
      Cookie firstName = new Cookie("first_name",
                      request.getParameter("first_name"));
      Cookie lastName = new Cookie("last_name",
                      request.getParameter("last_name"));
      // 为两个 Cookies 设置过期日期为 24 小时后
      firstName.setMaxAge(60*60*24); 
      lastName.setMaxAge(60*60*24); 
      // 在响应头中添加两个 Cookies
      response.addCookie( firstName );
      response.addCookie( lastName );
      // 设置响应内容类型
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
      String title = "设置 Cookies 实例";
      String docType =
      "<!doctype html public \"-//w3c//dtd html 4.0 " +
      "transitional//en\">\n";
      out.println(docType + "<html>\n" +
                "<head><title>" + title + "</title></head>\n" +
                "<body bgcolor=\"#f0f0f0\">\n" +
                "<h1 align=\"center\">" + title + "</h1>\n" +
                "<ul>\n" +
                "  <li><b>名字</b>:"
                + request.getParameter("first_name") + "\n" +
                "  <li><b>姓氏</b>:"
                + request.getParameter("last_name") + "\n" +
                "</ul>\n" + "</body></html>");
  }
}

编译上面的Servlet HelloForm,并在web.xml文件中创建Servlet对应的位置,通过jsp来调用Servlet。

<body>
<form action="HelloForm" method="GET">
名字:<input type="text" name="first_name">
<br />
姓氏:<input type="text" name="last_name" />
<input type="submit" value="提交" />
</form>
</body>

保存上面的内容到xx.jsp中,并把它放在/webapps/ROOT目录中。当你访问http://localhost:8080/xx.jsp时,上面表单的实际输出如下所示:
在这里插入图片描述
尝试输入名字和姓氏,然后点击提交按钮,名字和姓氏将显示在屏幕上,同时会设置firstName和lastName这两个Cookies,当下次按提交按钮时,会被这两个Cookies传回到服务器。下一章讲解如何在Web应用程序中访问这些Cookies。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值