黑马程序员技术交流社区

标题: Cookie [打印本页]

作者: fxtahe    时间: 2018-7-20 14:26
标题: Cookie
会话技术
用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
常用会话技术
为什么使用
私有的数据,信息数据保存在会话技术中.
Cookie
创建Cookie
常见API
HttPServletResponse方法
HttpServletRequest方法
注意:cookie不能存取中文,不可跨浏览器存储
Cookie分类public class CountServlet extends HttpServlet {        private static final long serialVersionUID = 1L;               protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {            int count = this.getServletContext().getAttribute("count");            count++            this.getServletContext().setAttribute("count",count);            response.setContentType("text/html;charset=utf-8");                        Cookie[] cookies = request.getCookies();            Cookie cookie = findCookie(cookie,"lastVisit");            if(cookie == null){                response.getWrite().println("<h3>欢迎您第1次登录</h3>");            }else{                Long l =Long.parseLong(cookie.getValue());                Data d = new Date();                response.getWriter.println("您是第"+count+"成功登录的访客!上次访问的时间是:"+d.toLocaleString());            }                        Cookie c = new Cookie("lastVisit",""+System.currentTimeMillis());            respons.addCookie(c);                    }                private static Cookie findCooikie(Cookie[] cookies,String name){            if(Cookie[] == null){                return null;            }            for(Cookie cookie:cookies){                if(cookie.getName().equals(name){                    return cookie;                }            }            return null;        }                protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {            doGet(request,response);        }
产品浏览记录
public class CountServlet extends HttpServlet {        private static final long serialVersionUID = 1L;               protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {                        String id = request.getParamter("id");            Cookie[] cookies = request.getCookies();            Cookie cookie = findCookie(cookies,"history");            if(cookie == null){                Cookie c = new Cookie("history",id);                c.setPath("/path");                c.setMaxAge(60*60*24);                response.addCookie(c);            }else{                String[] values = cookie.getValue().split("-");                LinkedList<String> list = new LinkedList<String>(Arrays.asList(values));                if(list.contains(id)){                    list.removeLast();                    list.addFirst(id);                }else{                    if(list.size()>=3){                        list.removeLast();                        list.addFirst(id);                    }else{                        list.addFirst(id);                    }                }                                StringBuffer sb = new StringBuffer();                for(String s:list){                    sb.append(s).append("-");                }                String svalue = sb.toString().subString(0,sb.length-1);                                Cookie c = new Cookie("history",svalue);                c.setPath("/path");                c.setMaxPath(60*60*24);                response.addCookie(c);            }            request.getRequestDispatcher("/Demo/product.jsp").forward(request, response);                                }                private static findCookie(Cookie[] cookies,Stirng name){            if(cookies == null){                return null;            }            for(Cookie cookie:cookies){                if(cookie.getName().equals(name)){                    return cookie;                }            }            return null;                    }                protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {            doGet(request,response);        }JSP
Java Server Pages(Java服务器页面)
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><span style="color:red">${ msg }</span><form action="/webfinal/UserServlet" method="post">        用户<input type="text" name="username" /><br/>        密码<input type="password" name="password" /><br/>        <input type="submit" value="提交" /></form></body></html>public class UserServlet extends HttpServlet {        private static final long serialVersionUID = 1L;        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {                // TODO Auto-generated method stub                try {                        response.setContentType("text/html;charset=utf-8");                        String username = request.getParameter("username");                        String password = request.getParameter("password");                                                User user = new User();                        user.setUsername(username);                        user.setPassword(password);                                                UserService userService = new UserService();                        User existUser = userService.login(user);                        if(existUser == null){                                request.setAttribute("msg", "用户或密码错误");                                request.getRequestDispatcher("/login.jsp").forward(request, response);                        }else{                                response.setStatus(302);                                response.addHeader("Location", "/webfinal/success.html");                        }                } catch (SQLException e) {                        e.printStackTrace();                }                                        }        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {                // TODO Auto-generated method stub                doGet(request,response);        }}项目包设计简单设计:        com.itheima                         公司域名倒写        com.itheima.domain          存放javaBean        com.itheima.dao                 存放dao        com.itheima.service         存放service        com.itheima.web.servlet  存放servlet        com.itheima.web.filter   存放filter        com.itheima.utils           存放工具类        专业设计:        com.itheima                         公司域名倒写        com.itheima.domain          存放javaBean        com.itheima.user.dao                 存放dao        com.itheima.user.service         存放service        com.itheima.user.servlet          存放servlet        com.itheima.utils           存放工具类



作者: 奥斯托洛夫斯基    时间: 2018-8-9 17:33

作者: O-limin    时间: 2018-8-9 17:34

作者: 项老师    时间: 2018-8-9 17:37

作者: TomGe    时间: 2018-8-9 17:39

作者: 天亮1    时间: 2018-8-9 17:42

作者: hguilin    时间: 2018-8-9 17:55
6666
作者: shengweiyun    时间: 2018-8-9 18:11
        
作者: 黑马啸西风    时间: 2018-8-9 18:41

作者: wishyouwerehere    时间: 2018-8-9 18:50

作者: 合肥黑马9期    时间: 2018-8-9 18:55

作者: 鸟语花香    时间: 2018-8-10 09:58

作者: obger000    时间: 2018-8-14 11:19
写的好厉害的样子,可惜我看不懂。
作者: 曹瑞银    时间: 2018-8-14 11:19

作者: ZC971227    时间: 2018-8-14 11:19
真好,希望多一点这样的分享
作者: 涂承浩    时间: 2018-8-14 11:19

作者: ms1249615386    时间: 2018-8-14 11:20
写的不错
作者: pfjava6    时间: 2018-8-14 11:20
厉害,继续努力坚持
作者: 日常空大    时间: 2018-8-14 11:21
膜拜大佬
作者: 595156223    时间: 2018-8-14 11:21

作者: 梧桐花开    时间: 2018-8-14 11:25





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2