servlet cookie处理实践

一、servlet中处理cookie的方法

方法描述
public void setDomain(String pattern)该方法设置 cookie 适用的域名。
public String getDomain()该方法获取 cookie 适用的域名。
public void setMaxAge(int expiry)该方法设置cookie生产的时间(以秒为单位)。如果不设置,cookie只会在当前session中有效。
public int getMaxAge()获取cookie的最大生存周期(以秒为单位),默认,-1表示cookie将持续下去,直到浏览器关闭。
public String getName()获取cookie的名称。name只能被设置一次,不能修改。
public void setValue(String newValue)设置cookie的值。
public String getValue()获取cookie的值。
public void setPath(String uri)设置cookie适用的路径。如果不指定路径,与当前页面相同目录下的(包括子目录下的)所有URL都会返回cookie。
public String getPath()获取cookie的适用路径。
public void setSecure(boolean flag)设置布尔值,true表示cookie只能在加密的(SSL)连接上发送。
public void setComment(String purpose)设置cookie的注释。该注释可以用于浏览器向用户呈现cookie时。
public String getComment()获取设置的注释。

二、创建cookie和使用cookie的例子

首先写了一个servlet,重写了doGet方法,用于处理来自”/CookiesTest”的GET请求。

//使用注解的方式注册servlet,和在web.xml中注册等效
@WebServlet(name = "CookiesTest", urlPatterns = {"/CookiesTest"})
public class CookiesTest extends HttpServlet{
    private static final long serialVersionUID = 1L;
    public CookiesTest() {}
    @Override
    public void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException{
        //获取浏览器访问时携带的cookie,以数组的形式保存。
        Cookie[] readCookies = request.getCookies();
        String userNameStr;
        String passwordStr;
        if(readCookies == null){//等于null表示浏览器没有携带cookie
//浏览器没有携带cookie时,就从url中获取需要的参数
//http://localhost:8080/ServletCookieTest/CookiesTest?userName=1&password=1
//是本例子的url
            userNameStr = request.getParameter("userName");//获取userName参数的值
            passwordStr = request.getParameter("password");//获取password参数的值

            //创建两个cookie,以name和value作为参数
            Cookie userName = new Cookie("userName", userNameStr);
            Cookie password = new Cookie("password", passwordStr);
            //设置cookie的生存时间,单位是秒。
            userName.setMaxAge(60*60); //60s * 60 = one hour
            password.setMaxAge(60*60); //60s * 60 = one hour
            //将新创建的cookie添加到HttpServletResponse中
            response.addCookie(userName);
            response.addCookie(password);
        }
        else{//说明浏览器携带了cookie,直接从浏览器携带的cookie中获取参数的值,不关心url了
            userNameStr = readCookies[0].getValue();
            passwordStr = readCookies[1].getValue();
        }

        //以下内容用于返回html,使用了userNameStr和passwordStr。
        response.setContentType("text/html;charset=UTF-8");
        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>User Name</b>:"
                    + userNameStr + "\n</li>" +
                    "  <li><b>Password</b>:"
                    + passwordStr + "\n</li>" +
                    "</ul>\n" +
                    "</body></html>");
    }
}

编写index.html,一个简单的表单,action=”CookiesTest” method=”GET”

<html>
<head>
<meta charset="utf-8">
<title>ServletCookieTest</title>
</head>
<body>
<form action="CookiesTest" method="GET">
姓名<input type="text" name="userName">
<br />
密码<input type="text" name="password" />
<input type="submit" value="提交" />
</form>
</body>
</html>

部署

创建动态web工程,命名ServletCookieTest;

创建java类,创建CookiesTest;

在WebContent目录下创建index.html;

部署到tomcat;

访问http://localhost:8080/ServletCookieTest/index.html即出现用户名密码登陆界面,点击提交则出现http://localhost:8080/ServletCookieTest/CookiesTest?userName=test&password=test ,上文定义的servlet将处理这个url,第一次登陆时,不携带cookie,将使用填写的用户名和密码并设置cookie,之后登陆则忽略用户名和密码,使用cookie。

推荐一个chrome的插件EditThisCookie,可以修改删除cookie。

时间: 2024-11-07 01:47:07

servlet cookie处理实践的相关文章

Servlet Cookie处理

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

servlet session跟踪实践

一.session简介 1.session概念 Session代表服务器与浏览器的一次会话过程.因为http是无状态的协议,所以,浏览器与服务器的会话过程是断断续续的.在servlet中,session指的是HttpSession对象. 浏览器第一次发出请求时,服务器创建session并生成一个sessionID.然后返回给浏览器.此时查看浏览器的cookie,会发现会有一个: Cookie:JSESSIONID=sessionID 浏览器再次发出请求时,会携带该cookie,服务器就可以根据s

Servlet—Cookie(显示用户上次访问时间、显示商品浏览历史)

1 . 什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 1.1 会话过程中要解决的一些问题? 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据. 例如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便于用户点结帐servlet时,结帐servlet可以得到用户购买的商品为用户结帐. 思考:用户购买的商品保存在r

servlet Cookie 的使用(六)

1.cookie介绍 Cookie,指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密).(可以叫做浏览器缓存) 2.cookie案例 servlet 源码 package com.learn; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.serv

Servlet课程0426(十一)Servlet Cookie实现两周内不用重复登录

Welcome.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; import java.sql.*; public class Welcome extends HttpServlet{ public void doGet(HttpServletRequest req, HttpServletResponse res) { //业务逻辑 Connection ct = null; Pr

Servlet——Cookie

会话技术 1.cookie 2.session 会话(session) 1.什么是会话? 会话可以简单理解为:用户开一个浏览器访问某个网站,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话 比如打电话,我打通对方电话,只要电话不挂,这次会话就没有结束. 2.会话过程中要解决的一些问题? 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,服务器要想办法为每个用户保存这些数据. 例如,多个用户点击超链接通过一个servlet各自购买了一个商品,

2018/1/3 Servlet+cookie+session

1.Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet对象 只调用1次.证明servlet对象在tomcat是单实例的. init方法: 创建完servlet对象的时候调用.只调用1次. service方法: 每次发出请求时调用.调用n次. destroy方法: 销毁servlet对象的时候调用.停止服务器或者重新部署web应用时销毁servlet对象. 只调用1次. 2.伪代码演示servlet的生命

Servlet Cookie、Session

HTTP不能保持连接,可使用会话保存用户信息. 常用的会话技术有2种:Cookie.Session. Cookie 1.原理 当用户第一次访问某个网站时,服务器设置Cookie,存储用户信息,放在响应头字段中,随HTTP响应传给浏览器,浏览器把Cookie存储到本地计算机上. 当用户再次访问该网站时,浏览器先在本地计算机上查找该网站的Cookie,如果有,放在请求头中,随HTTP请求一起发送给该网站的服务器.服务器解析Cookie,获取该用户的信息,进行相关操作. 服务器可重新设置Cookie,

Intellij Idea 17.2 Servlet 简单项目实践

在网上查看了许多关于 Intellij Idea  Servlet项目开发的,但是大多是时间很久的老古董了,经过自己的不懈努力,终于实现了自己想要的功能. 这里是最新版 Intellij Idea 17.2  Tomcat 8 在这里主要记录自己做项目的过程,仅供和我一样在学习的菜鸟做一个参考. 目标: 通过Intellij Idea  实现一个 Servlet 项目. 第一,建立一个web项目: file---->new---->Project next 之后填写项目名称,我的是:myDem