• Java后端 学习路线 笔记汇总表【黑马程序员】
  1. Cookie和Session-学习笔记01【Cookie_快速入门、Cookie_细节】
  2. Cookie和Session-学习笔记02【Cookie案例、JSP改造Cookie案例】
  3. Cookie和Session-学习笔记03【Session快速入门、Session细节】
  4. Cookie和Session-学习笔记04【Session之验证码案例】

目录

第3节 Cookie案例

会话技术_Cookie_案例_分析

会话技术_Cookie_案例_代码实现

HTTP状态码500——非法参数异常

URL编解码

第4节 JSP改造Cookie案例

JSP_概念

JSP_原理

JSP_脚本

JSP_入门学习

JSP_案例_改造Cookie案例

更改jsp代码模板


第3节 Cookie案例

会话技术_Cookie_案例_分析

cookie
1. 概念:客户端会话技术,将数据保存到客户端。
2. 快速入门
3. 实现原理
4. cookie的细节
    1. 一次可不可以发送多个cookie?
    2. cookie在浏览器中保存多长时间?
    3. cookie能不能存中文?
    4. cookie共享问题?
    5. Cookie的特点和作用

6. 案例:记住上一次访问时间
        1. 需求:
            1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。
            2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串
        2. 分析:
            1. 可以采用Cookie来完成
            2. 在服务器中的Servlet判断是否有一个名为lastTime的cookie
                1. 有:不是第一次访问
                    1. 响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:50:20
                    2. 写回Cookie:lastTime=2018年6月10日11:50:01
                2. 没有:是第一次访问
                    1. 响应数据:您好,欢迎您首次访问
                    2. 写回Cookie:lastTime=2018年6月10日11:50:01
        3. 代码实现:...

Cookie案例_记住上次访问时间

会话技术_Cookie_案例_代码实现

package cn.itcast.cookie;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;/*** 在服务器中的Servlet判断是否有一个名为lastTime的cookie* 1. 有:不是第一次访问* 1. 响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:50:20* 2. 写回Cookie:lastTime=2018年6月10日11:50:01* 2. 没有:是第一次访问* 1. 响应数据:您好,欢迎您首次访问* 2. 写回Cookie:lastTime=2018年6月10日11:50:01*/@WebServlet("/cookieTest")
public class CookieTest extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置响应的消息体的数据格式以及编码response.setContentType("text/html;charset=utf-8");//1.获取所有CookieCookie[] cookies = request.getCookies();boolean flag = false;//没有cookie为lastTime//2.遍历cookie数组if (cookies != null && cookies.length > 0) {for (Cookie cookie : cookies) {//3.获取cookie的名称String name = cookie.getName();//4.判断名称是否是:lastTimeif ("lastTime".equals(name)) {//有该Cookie,不是第一次访问flag = true;//有lastTime的cookie//设置Cookie的value//获取当前时间的字符串,重新设置Cookie的值,重新发送cookieDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str_date = sdf.format(date);System.out.println("编码前:" + str_date);//URL编码str_date = URLEncoder.encode(str_date, "utf-8");System.out.println("编码后:" + str_date);cookie.setValue(str_date);//设置cookie的存活时间cookie.setMaxAge(60 * 60 * 24 * 30);//一个月response.addCookie(cookie);//响应数据//获取Cookie的value,时间String value = cookie.getValue();System.out.println("解码前:" + value);//URL解码:value = URLDecoder.decode(value, "utf-8");System.out.println("解码后:" + value);response.getWriter().write("<h1>欢迎回来,您上次访问时间为:" + value + "!</h1>");break;}}}if (cookies == null || cookies.length == 0 || flag == false) {//没有,第一次访问//设置Cookie的value//获取当前时间的字符串,重新设置Cookie的值,重新发送cookieDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str_date = sdf.format(date);System.out.println("编码前:" + str_date);//URL编码str_date = URLEncoder.encode(str_date, "utf-8");System.out.println("编码后:" + str_date);Cookie cookie = new Cookie("lastTime", str_date);//设置cookie的存活时间cookie.setMaxAge(60 * 60 * 24 * 30);//一个月response.addCookie(cookie);response.getWriter().write("<h1>您好,欢迎您首次访问!</h1>");}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}

HTTP状态码500——非法参数异常

URL编解码

  

第4节 JSP改造Cookie案例

JSP_概念

JSP:入门学习
1. 概念:
    * Java Server Pages: java服务器端页面
        * 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码。
        * 用于简化书写!!!

JSP_原理

JSP:入门学习
1. 概念

2. 原理
    * JSP本质上就是一个Servlet。

JSP原理

  

JSP_脚本

JSP:入门学习
1. 概念
2. 原理

3. JSP的脚本:JSP定义Java代码的方式
    1. <%  代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
    2. <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
    3. <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。

4. JSP的内置对象

JSP_入门学习

JSP:入门学习
1. 概念
2. 原理

3. JSP的脚本:JSP定义Java代码的方式
4. JSP的内置对象:
    * 在jsp页面中不需要获取和创建,可以直接使用的对象
    * jsp一共有9个内置对象。
    * 今天学习3个:
        * request:请求
        * response:相应
        * out:字符输出流对象。可以将数据输出到页面上。和response.getWriter()类似
            * response.getWriter()和out.write()的区别:
                * 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
                * response.getWriter()数据输出永远在out.write()之前

JSP_案例_改造Cookie案例

JSP:入门学习

  1. 概念
  2. 原理
  3. JSP的脚本:JSP定义Java代码的方式
  4. JSP的内置对象:
  5. 案例:改造Cookie案例

html代码 与 Java代码 嵌套。

<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>itcast</title>
</head>
<body><%//1.获取所有CookieCookie[] cookies = request.getCookies();boolean flag = false;//没有cookie为lastTime//2.遍历cookie数组if (cookies != null && cookies.length > 0) {for (Cookie cookie : cookies) {//3.获取cookie的名称String name = cookie.getName();//4.判断名称是否是:lastTimeif ("lastTime".equals(name)) {//有该Cookie,不是第一次访问flag = true;//有lastTime的cookie//设置Cookie的value//获取当前时间的字符串,重新设置Cookie的值,重新发送cookieDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str_date = sdf.format(date);System.out.println("编码前:" + str_date);//URL编码str_date = URLEncoder.encode(str_date, "utf-8");System.out.println("编码后:" + str_date);cookie.setValue(str_date);//设置cookie的存活时间cookie.setMaxAge(60 * 60 * 24 * 30);//一个月response.addCookie(cookie);//响应数据//获取Cookie的value,时间String value = cookie.getValue();System.out.println("解码前:" + value);//URL解码:value = URLDecoder.decode(value, "utf-8");System.out.println("解码后:" + value);%><h1>欢迎回来,您上次访问时间为:<%=value%></h1><input><%break;}}}if (cookies == null || cookies.length == 0 || flag == false) {//没有,第一次访问//设置Cookie的value//获取当前时间的字符串,重新设置Cookie的值,重新发送cookieDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str_date = sdf.format(date);System.out.println("编码前:" + str_date);//URL编码str_date = URLEncoder.encode(str_date, "utf-8");System.out.println("编码后:" + str_date);Cookie cookie = new Cookie("lastTime", str_date);//设置cookie的存活时间cookie.setMaxAge(60 * 60 * 24 * 30);//一个月response.addCookie(cookie);%><h1>您好,欢迎您首次访问</h1><span></span><%}%><input>
</body>
</html>

更改jsp代码模板

是日已过,命亦随减,如少水鱼,斯有何乐。当勤精进,如救头燃,但念无常,慎勿放逸。——佛教偈语

Cookie和Session-学习笔记02【Cookie案例、JSP改造Cookie案例】相关推荐

  1. JavaWeb-综合案例(用户信息)-学习笔记02【登录功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  2. Bootstrap学习笔记02【全局CSS样式、组件和插件、案例_黑马旅游网_首页】

    Java后端 学习路线 笔记汇总表[黑马程序员] Bootstrap学习笔记01[快速入门.栅格布局][day01] Bootstrap学习笔记02[全局CSS样式.组件和插件.案例_黑马旅游网][d ...

  3. JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  4. JavaWeb黑马旅游网-学习笔记02【注册功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  5. HTML/CSS学习笔记02【表单标签】

    w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...

  6. 大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666 [P001-P ...

  7. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02 6. 锁 ​ 人们认为行级锁总会增加开销.实际上,只有当实现本身会增加开销时,行级锁才会增加开销.InnoDB 存储引擎不需要锁升级,因 ...

  8. Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  9. Tomcat学习笔记02【Tomcat部署项目】

    Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...

最新文章

  1. spring mvc 接入cas登录
  2. 如何用 C++ 在 10 行内写出八皇后?
  3. HZNU 2019 Summer training 8
  4. 201771010120 苏浪浪 《面向对象程序设计(java)》第二周学习总结
  5. go语言快速刷《程序员面试金典》(3)
  6. cad怎么向下位移_CAD制图初学入门教程:阵列功能的使用技巧
  7. mysql操作符_MySql 中的=操作符
  8. 蓝桥杯:2018年第九届蓝桥杯省赛B组第七题—螺旋折线
  9. Excel中数据透视表的 使用 创建(ピポットテーブル)
  10. 学生选课管理系统php,学生选课管理系统(全源代码.doc
  11. Unity3D 在 UI TextMeshPro (TMP) 中显示中文
  12. 无法启动计算机上的服务msdtc,MSDTC服务无法启动,导致网站打不开
  13. java房屋租赁系统-房东租客系统PHP小程序
  14. 更改访问局域网win7计算机的用户,win7局域网共享设置 win7局域网共享设置方法...
  15. HTML+CSS大作业
  16. win10 更新后任务栏问题及如何关闭windows自动更新
  17. java商家查询订单功能_查询订单详情示例代码
  18. 《增长黑客》- 读书笔记(一)
  19. 靶机渗透练习99-hacksudo:FOG
  20. EasyOCR,识别图片中的文字真的so easy

热门文章

  1. php遍历文件夹下文件内容_php遍历文件夹下所有文件的代码示例
  2. android与mysql的交互,与Android中的外部SQLite数据库进行交互.
  3. 【小白学习C++ 教程】十一、C++类中访问修饰符
  4. ACL 2021 | ConSERT:基于对比学习的句子语义表示迁移框架
  5. SemEval-2020自由文本关系抽取冠军方案解读 (附NLP竞赛常用技巧总结)
  6. 详解GAN的谱归一化(Spectral Normalization)
  7. Java基础案例教程
  8. php es6写法,Web/PHPStorm ES6 语法支持以及实时编译
  9. 【☀️~爆肝万字总结递归~❤️玩转算法系列之我如何才能掌握递归解题的能力❤️~十大经典问题助你突破极限~建议收藏☀️】
  10. java实现表锁行锁