Day9-2 Web三大组件、Session和Cookie

Servlet、Listener和Filter是Web三大组件。

Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

Servlet可以在创建Servlet模板文件时,被自动配置到web.xml文件中;也可以通过@WebServlet("/otherName")注解的方式,在Servlet文件中直接被管理。

Day9-2 Web三大组件、Session和Cookie

 

Listener

监听器(Listener)可以自动触发操作,例如系统启动时,可以触发操作,用于加载数据到缓存。

Session 对象存储特定用户会话所需的属性及配置信息。当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。Session是服务端为用户分配的缓存,通常是1024K,空间不会太大。当1024K不能满足系统需求时,通常会通过redis作为缓存。SessionId会被保存在Cookie中。

Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。

Cookie 在计算机中是个存储在浏览器目录中的文本文件,当浏览器运行时,存储在 RAM 中发挥作用 (此种 Cookies 称作 Session Cookies),一旦用户从该网站或服务器退出,Cookie 可存储在用户本地的硬盘上 。

监听器可以在创建Listener模板文件时,被自动配置到web.xml文件中;也可以通过@WebListener注解的方式,在Listener文件中直接被管理。

 

Filter

拦截器(Filter)使用户可以改变一个request和修改一个response。Filter 不是一个servlet,它不能产生一个response,但能够在一个request到达servlet之前预处理request,也可以在response离开servlet时处理response。

Filter其实是一个“servlet chaining“(servlet 链)。

Filter最常用的场景是网站的登录要求,可以对全站所有页面进行拦截,非登录页面检查是否携带session信息,若没有,则始终跳转到登录页面;若是登录页面,则根据提交的信息创建session。这样可以保证网站的访问必须强制用户登录。

拦截器可以在创建Filter模板文件时,被自动配置到web.xml文件中;也可以通过@WebFilter(filterName="/LoginFilter", urlPatterns={"/*"})注解的方式,在Filter文件中直接被管理。