会话技术:
会话:一次会话中发生多次请求和响应
一次会话:从浏览器的打开到关闭
功能:在会话的过程中 ,可以共享数据

cookie:客户端的会话技术
session:服务端的会话技术

Cookie:小饼干

Cookie是由服务器产生,然后通过response(Set-Cookie)对象写入浏览器,然后保存在浏览器端,
在request下一次访问的时候,通过cookie的请求头 将cookie带回浏览器

cookie 默认到期时间:会话结束

cookie的相关方法:
new Cookie(name,value):创建cookie对象
response.addCookie():写回浏览器
request.getCookies():获取cookie

c.setMaxAge(60*60);
//设置路径: 路径不一样 浏览器默认cookie 不是同一个
//如果向共享cookie 那么 路径设置为/ 就可以了
c.setPath("/aaaa");

//cookie失效:将MaxAge 设置成(0);即可 但是要注意 ,路径要相同

案例:记录上一次的登录时间:

分析: 如果是第一次登录 就显示 第一次登录
如果不是第一次登录 就显示上次登录的时间

总结:
cookie能不能存储中文:
tomcat8以前 不可以存储中文和特殊字符
tomcat8及以后:可以存储中文 但是不能存储特殊字符 (空格)

cookie的特点和作用:
1、cookie存储数据在客户端浏览器
2、cookie存储的数据由大小限制:4kb 同一个域名下的的总的cookie数量(20个)

补充:el表达式对 cookie的支持 ${}

${cookie.msg.value}

注意:

cookie.msg : 通过cookie的key值 获取整个cookie对象
cookie.msg.value: 通过javabean导航的规则 获取cookie对象的值

Session:
Session是由服务器产生,保存在服务器中
一个用户 对应一个session( 一个浏览器 对应一个session)

session的原理: JessionId session是依赖于cookie的

注意:如果服务器关闭 ,那么会产生一个新的session 和 新的session id

session的常用方法:
request.getSession()
setAttribute() getAttribute()
removeAttribute()

session 的默认有效时间:30分钟
session 失效的方法:
1、配置web.xml
<session-config>
<session-timeout>1</session-timeout>
</session-config>
2、手动的干掉session
session.invalidate();

3、代码设置session的保存时间
session.setMaxInactiveInterval(); 单位秒

验证码案例:session

javaweb:三大组件
servlet、Filter、listener

Filter:掌握 过滤器

概念:
生活中:净水器、空气净化器、土匪……
web中过滤器:当我们访问服务器的资源的时候,过滤某些请求,完成一些特殊的功能
作用:
一般用于完成通用的操作。例如:登录验证、统一字符编码……

入门:
步骤:
1、定义一个类,实现Filter接口
2、复习方法
3、配置Filter
1、web.xml

<!--<filter>-->
<!--<filter-name>FilterDemo1</filter-name>-->
<!--<filter-class>com.xmcc.filter.FilterDemo1</filter-class>-->
<!--</filter>-->
<!--<filter-mapping>-->
<!--<filter-name>FilterDemo1</filter-name>-->
<!--<url-pattern>/login.jsp</url-pattern>-->
<!--</filter-mapping>-->
2、注解
@WebFilter("/login.jsp")

过滤器的执行流程:
1、执行过滤器doFilter()
2、执行放行方法
3、执行filterChain.doFilter() 后的代码

Filter的声明周期:
1、init() 在服务器启动后 创建Filter对象的时候 执行一次
2、doFilter() 每一次请求被拦截 都会执行一次
3、destroy() 在服务器关闭以后 Filter对象被销毁的时候 调用一次

过滤器的配置:
1、拦截路径的配置:
/*: 拦截全部
/login.jsp : 只拦截login.jsp
/jsp/* : 拦截 jsp路径下的所有资源
*.jsp: 拦截所有的jsp资源
2、拦截方式:资源被访问的方式
Filter四种拦截方式:
* request(默认)
* forward (拦截转发)
* include (拦截包含)
* error (只拦截错误页面)

注解配置:
dispatcherTypes={DispatcherType.FORWARD}
web.xml配置

<filter-mapping>
<filter-name>FilterDemo1</filter-name>
<url-pattern>/login.jsp</url-pattern>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>

过滤器链的介绍

执行顺序;
FilterDemo1---去
FilterDemo2---去
FilterDemo2----回
FilterDemo1---回

注意:如果是通过web.xml配置的filter

谁配置在前面 谁就先执行

如果是注解:
根据Filter的名字 一个一个字母的比较 小的先执行
例如:AFilter 和 BFilter 那么 AFilter 先执行

案例:登录验证

Listener:监听器(了解)

事件监听:
事件:一件事情
事件源:事件发生的地方
监听器:一个对象
注册监听:将事件、事件源、监听器绑定在一起,当事件源上发生某个事件的时候 就执行监听器的代码

web:8种监听器

步骤:
1、定义一个类
2、复写方法
3、配置监听器
1、web.xml
<listener>
<listener-class>com.xmcc.listener.MyListener</listener-class>
</listener>
2、注解
@WebListener

例如:ServletContextListener
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
//监听ServletContext的创建
}

@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
//监听ServletContext对象的销毁
}

作用:获取初始化参数
1、设置初始化的参数
web.xml中设置初始化参数

<!-- 设置初始化参数 -->
<context-param>
<param-name>name</param-name>
<param-value>coco</param-value>
</context-param>

cookie,session,fileter,liscen的更多相关文章

  1. cookie,session,sessionid

    cookie,session,sessionid http协议是无状态的,意思是每次请求的状态不会保存.因此,产生了cookie,session之类保存会话状态的机制.1.什么是cookiecooki ...

  2. Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期

    servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...

  3. 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法

    单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数: @Action(value = "outerLogin", results = { @Result(na ...

  4. 会话Cookie及session的关系(Cookie & Session)

    会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...

  5. cookie,session,token的定义及区别

    参考了很多文章总结的. 1.cookie(储存在用户本地终端上的数据) 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. 2.session(会话) a.代表服务器与浏览器的一次 ...

  6. Java web学习 Cookie&&Session

    cookie&&session 会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会 话技术就是记录这次会话中客户端的状态与数据的. 会话技术分为Coo ...

  7. Cookie&Session(会话技术)

    一.Cookie技术 从打开一个游览器访问某个站点,到关闭这个游览器的整个过程成为一次会话 会话技术分为Cookie和Session Cookie:数据存储在客服端本地,减少对服务端的存储的压力,安全 ...

  8. Cookie Session和自定义分页

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  9. python Cookie Session 相关用法

    Cookie一.前言1.http协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响 应情况直接影响,也不会直接影响后面的请 ...

随机推荐

  1. python数据类型之元组类型

    #为何要有元组,存放多个值,元组不可变,更多的是用来做查询 t=(1,[1,2,3],'a',(1,2)) #t=tuple((1,[1,2,3],'a',(1,2))) # print(type(t ...

  2. 1. centos下安装docker

    CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发 ...

  3. Flutter中SQLite数据库的使用

    同时支持android和ios 支持事务和批量操作 支持插入/查询/更新/删除操作 在iOS和Android上的后台线程中执行数据库操作 1.添加依赖 dependencies: ... sqflit ...

  4. Redis查漏补缺:最易错过的技术要点大扫盲

    考虑到绝大部分写业务的程序员在实际开发中使用Redis时,只会Setvalue和Getvalue两个操作,对Redis整体缺乏一个认知.又恰逢笔者有同事下周要去培训Redis,所以笔者斗胆以Redis ...

  5. Java线程基础(二)

    今天上午考完了计算机二级,也算卸掉了一个大包袱吧,希望能过!(其实也就考着玩的,不来点考试就要发霉了) 好了,趁着难得的考后休息时间我就接着上一次没写完的继续更新吧. 上一篇文章——>Java核 ...

  6. kubernets controller 和 CRD 具体组件分析

    (dlv) b k8s.io/sample-controller/pkg/client/informers/externalversions.(*sharedInformerFactory).Info ...

  7. 无序hashset与hashmap让其有序

    今天迭代hashmap时,hashmap并不能按照put的顺序,迭代输出值.用下述方法可以: HashMap<String,String> hashmap = new LinkedHash ...

  8. 移动namenode、secondarynamenode和jobTracker的节点(使其成为独立节点)

    https://blog.csdn.net/zwx19921215/article/details/22528097

  9. 清华源和中科大源都停止对Anaconda的支持之后,换腾讯云镜像的方法

    直接下载下面的文件解压后放在用户文件夹下即可,windows为"C:\用户\你的用户名\",Linux为"/home/你的用户名/"即用户主目录下. 点我下载 ...

  10. html知识点汇总(持续更新中)

    本人从事前端行业三年多,打算从今天开始整理一些关于前端的一些比较经典的知识点,持续更新中...希望能对一些相关知识点有疑问的朋友有一些帮助! HTML篇: 1.常见的行内元素/块级元素/空元素有哪些? ...