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

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. Java -- 基于JDK1.8的ArrayList源码分析

    1,前言 很久没有写博客了,很想念大家,18年都快过完了,才开始写第一篇,争取后面每周写点,权当是记录,因为最近在看JDK的Collection,而且ArrayList源码这一块也经常被面试官问道,所 ...

  2. 关于IE浏览器 ajax 请求返回数据不对的问题

    在使用ajax向后台发送请求的时候,在使用ie 进行调试的时候发现根据条件进行查询时,返回的数据与没有根据条件进行查询时数据相同,也就是条件没有发生作用. 经过同事的帮助发现ajax初始化设置时没有c ...

  3. ubuntu上传到百度网盘

    1 2 亲测可以上传

  4. urlconnection代码

    package com.yucheng.connection; import java.io.BufferedReader; import java.io.InputStream; import ja ...

  5. Linux替换文件内容sed命令

    sed -e 4a\newline testfile  //在第四行后添加一行,并将结果输出到标准输出.-e,以指定脚本处理文本文件:a,新增. nl /etc/passwd | sed '2,5d' ...

  6. linux重启Oracle服务

    linux重启oracle服务命令(完整版) (1) 以oracle身份登录数据库,命令:su – oracle (2) 进入Sqlplus控制台,命令:sqlplus /nolog (3) 以系统管 ...

  7. 在dotnetcore的MVC项目中,创建支持 vue.js 的最小工程模板

    网上Vue模板不是最新的,我自己做了一个最新的支持 Vue.js 的最小工程模板,方便大家从 Hello world. 入门, 在 VS2017 里学习,并扩展出自己的项目. 下面是创建步骤: 1.在 ...

  8. html2canvas截屏用法

    <!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" ...

  9. Porsche Piwis Tester II V15.6 with CF30 Laptop or Lenovo E49AL Laptop

    Some of my customers let me recommended which auto diagnostic tool is good for Porsche , I recommend ...

  10. asp.net处理机制管道事件

    自定义的托管模块HTTP模块可以向System.Web.HttpApplication对象注册下面一系列事件: AcquireRequestState 当ASP.NET运行时准备好接收当前HTTP请求 ...