Java WEB-Cookie、Session、Filter

Cookie简介
Session会话
书城项目的实例
Filter过滤器

什么是Cookie
  • Cookie是服务器通知客户端保存键值对的一种技术
  • 客户端有了Cookie之后,每次请求都发给服务器
  • 每个Cookie的大小不能超过4KB
创建Cookie

在这里插入图片描述

服务器如何获取Cookie

在这里插入图片描述

Cookie值的修改
  • 方案一
  • 方案二
  • Cookie对象值的注意事项
    在这里插入图片描述
谷歌浏览器操作Cookie

在这里插入图片描述

Cookie生命控制
Cookie生命控制表示Cookie什么时候被销毁
  • 正数:表示在指定秒数之后
  • 负数:表示浏览器一关,Cookie就会被删除
  • 零:表示马上删除Cookie
    protected void life3600(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Cookie cookie = new Cookie("life3600", "life3600");
        //设置一个存活一小时的Cookie对象
        cookie.setMaxAge(60*60);
        resp.addCookie(cookie);
        resp.getWriter().write("已经创建了存活一小时的Cookie对象");
    }
Cookie有效路径的path设置
  • 即只有访问设置的path路径才能访问到Cookie对象(可以不保证路径是否存在)

在这里插入图片描述

Cookie练习免用户名登录

在这里插入图片描述

Session会话
  • Session就是一个接口
  • Session就是会话,用来维护客户端和服务器之间关联的一种 技术
  • 每个客户端都有自己的Session会话
  • Session会话娼用来保存用户登陆的一些信息
Session创建和获取

在这里插入图片描述

    protected void createOrGetSession(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //创建Session会话
        HttpSession session = req.getSession();
        //判断Session会话是否是新创建的
        boolean isNew = session.isNew();
        //获取Session的唯一标识id
        String id = session.getId();

        resp.getWriter().write("得到的Session的id为:" + id + "<br/>");
        resp.getWriter().write("这个Session是否是新创建的:" + isNew + "<br/>");
    }
Session域数据的存取
    protected void setAttribute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.getSession().setAttribute("key1", "value1");
        resp.getWriter().write("已经往Session中保存了数据");
    }

    protected void getAttribute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object attribute = req.getSession().getAttribute("key1");
        resp.getWriter().write("从Session域中取出的key1的值为:" + attribute);
    }
Session生命周期控制
  • Session超时,客户端和服务器俩次请求的最大间隔时长

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

浏览器和服务器之间的Sesion之间技术内幕
  • Session技术:底层其实是基于Cookie技术来实现的
  • 打开再关闭浏览器Session会话都不存在了,因为Cookie对象不存在了
    在这里插入图片描述
书城项目
登录显示用户名
        <%--如果用户还没有登录,显示 【登录和注册的菜单】--%>
        <c:if test="${empty sessionScope.user}">
            <a href="pages/user/login.jsp">登录</a> |
            <a href="pages/user/regist.jsp">注册</a> &nbsp;&nbsp;
        </c:if>

        <%--    如果用户已经登录,显示成功登陆的用户信息--%>
        <c:if test="${not empty sessionScope.user}">
            <span>欢迎<span class="um_span">${sessionScope.user.username}</span>光临尚硅谷书城</span>
            <a href="pages/order/order.jsp">我的订单</a>
            <a href="index.jsp">注销</a>&nbsp;&nbsp;
        </c:if>
注销用户
  • 销毁Session中用户登陆的信息
  • 重定向到首页或登录页面
<a href="userServlet?action=logout">注销</a>&nbsp;&nbsp;
表单重复提交之-验证码
  • 提交完表单,用户通过服务器页面来跳转
    在这里插入图片描述
  • 原理
    在这里插入图片描述
谷歌kaptcha验证码的使用

在这里插入图片描述
在这里插入图片描述

  • 验证码的切换

在这里插入图片描述

  • 在不同浏览器中点击事件的区别
				//给验证码添加点击事件
				$("#code_img").click(function () {
					//在事件响应的function函数中有一个this对象,这个this对象是正在响应的Dom对象
					//在谷歌浏览器中
					/*this.src = "${basePath}/kaptcha.jpg";*/
					//在IE或是火狐浏览器中(当然在谷歌也适应)
					this.src = "${basePath}/kaptcha.jpg?d=" + new Date();
				});
购物车模块分析

在这里插入图片描述

修改购物车的数量
订单模块的分析

在这里插入图片描述

Filter 过滤器的使用步骤

在这里插入图片描述

Filter生命周期包含的方法

在这里插入图片描述

FilterConfig类

在这里插入图片描述

filterChain 过滤器链
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值