Cookie:
-
会话:浏览器和服务器之间的多次请求和响应,为了实现一些功能,浏览器可能会产生多次请求和响应,多次响应加在一起就称之为浏览器和服务器之间的一次会话
-
会话过程中产生的一些数据,可以通过会话技术(Cookie和Session保存)。
-
Cokkie:客服端会话管理技术,把要共享的数据保存到客户端,每次请求时,把会话信息带到服务器端,从而实现多次请求的数据共享
属性名 | 作用 | 是否必须 |
private String name; | 名称 | 必须 |
private String value; | 值 | 必须 |
private String domain; | 域名 | 重要 |
private String path; | 路径 | 重要 |
private int maxAge = -1; | 存活时间 | 重要 |
private int version = 0; | 版本号 | 不重要 |
private String comment; | 描述 | 不重要 |
Cokkie 方法 :
addCookie(Cookie cookie) 向客户端添加Cookie
getCookie() 获取所有Cookie
Cokkie 的细节:
-
数量限制:每个网站最多只能有20个Cookie,且大小不能超过4kb。所有网站的Cookie总数不能超过300个。
-
名称限制:Cokkie的名称只能包ASCCI码表中的字母丶数字字符。不帮韩逗号丶分号丶空格,不能以$开头Cokkie的值不支持中文
-
存活时间限制 setMaxAge()方法接受数字
负整数:当前会话有效,浏览器关闭则清除
0:立即清除。
正整数:以秒为单位设置时间
-
访问路径限制
默认路径:取自第一次访问的资源路径前缀。只要以这个路径开头就能访问。
设置路径:setPath()方法设置指定路径
Session:
HttpSession:服务器端会话管理技术,本质也是采用客户端会话管理技术
域对象 | 功能 | 作用 |
ServletContext | 应用域 | 在整个应用之间实现数据共享 |
ServletRequest | 请求域 | 在当前的请求或转发之间实现数据共享 |
HttpSession | 会话域 | 在当前会话范围之间实现数据共享 |
返回值 | 方法名 | 说明 |
void | setAttribute(String name,Object value) | 设置共享数据 |
Object | get Attribute(String name) | 获取共享数据 |
void | removeAttribute(String name) | 移除共享数据 |
String | getId() | 获取唯一标识名称 |
void | Invalidate() | 让session立即失效 |
HttpSession | getSession() | 获取HttpSession对象 |
HttpSession | getSession(bolean create) | 获取HttpSession对象,未获取到的自动创建 |
JSP:
-
JSP是一种动态网页技术标准
-
JSP部署在服务器上,可以处理客户端发送的请求,并根据请求内容动态生成HTML XML 或其他格式的文档的Web网页,然后再响应给客户端
-
JSP 的九大隐式对象(不需要创建就可以使用) request,response,session,application,page,config(配置对象),exception(异常对象),out,pageContext(页面域对象)(pageContext最特殊,也可以获取其他八大隐式对象)
四大域对象:
域对象名称 | 范围 | 级别 | 备注 |
PageContext | 页面范围 | 最小,只能在当前页面使用 | 因范围很小,开发中用的很少 |
ServletRequest | 请求范围 | 一次请求或当前请求转发用 | 请求转发之后再次转发时请求域丢失 |
HttpSession | 会话范围 | 多次请求数据共享时使用 | 多次请求共享数据但不同的客户端不能共享 |
ServletContext | 应用范围 | 最大,整个应用都可以使用 | 尽量少用,如果对数据有修改需要做同步处理 |
-
MVC模型
M: 模型,用于封装数,封装的是数据模型!
V: 视图。拥有显示数据,动态资源用JSP页面,静态资源用HTML页面
C: 控制器。用于处理请求和响应,例如Servlet
JSTL:
-
JSTL 主要用这些标签来取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度
-
JSTL核心标签库
标签名称 | 功能分类 | 属性 | 作用 |
<标签名:if> | 流程控制 | 核心标签库 | 用于条件判断 |
<标签名:choose> <标签名:when> <标签名:otherwise> | 流程控制 | 核心标签库 | 用于多条件判断 |
<标签名:forEach> | 迭代遍历 | 核心标签库 | 用于循环遍历 |
Filter:
filter:过滤器 (登录验证,统一编码处理,敏感字符过滤)
FilterChain介绍:
-
FilterChain是一个接口,由Servlet容器提供实现类对象,直接使用即可
-
过滤器可以定义多个,就会组成过滤器链
-
核心方法 :void doFilter(ServletRequest request,ServletResponse reponse)作用:放行非法
Listener:
Listener:监听器 (观察者设计模式)
-
三个组成部分
事件源:触发事件的对象
事件:触发的动作,封装了事件源
监听器:当事件源触发事件后,可以完成功能
-
在程序中,我们可以对:对象的创建销毁丶域对象中属性的变化.丶会话相关内容进行监听
八大监听器:
-
ServletContextListener:用于监听ServletContext对象的创建和销毁
contextlnitialized(ServletContextEvent sce) 对象创建时执行该方法
contextDestoryed(ServletContextEvent sce) 对象销毁时执行该方法
-
HttpSessionListener:用于监听HttpSession对象的创建和销毁
sessionCreated(HttpSessionEvent se) 对象创建时执行该方法
sessionDestoryed(HttpSessionEvent se) 对象销毁时执行该方法
-
ServletRequestListener 用于监听ServletRequest对象的创建和销毁
requestlnitialized(ServletRequestEvent sre) 对象创建时执行该方法
requestDestoryed(ServletRequestEvent sre) 对象销毁时执行该方法
-
ServletContextAttributeListener:用于监听ServletContext应用域中属性的变化
attributeAdded(ServletContextAttributeEvent scae)域中添加属性时执行该方法
attributeRemoved(ServletContextAttributeEvent scae)域中移除属性时执行该方法
attributeReplaced(ServletContextAttributeEvent scae)域中替换属性时执行该方法
-
HttpSessionAttributeListener:用于监听HttpSession会话域中属性的变化
attributeAdded(HttpSessionBindingEvent se)域中添加属性时执行该方法
attributeRemoved(HttpSessionBindingEvent se)域中移除属性时执行该方法
attributeReplaced(HttpSessionBindingEvent se)域中替换属性时执行该方法
6.ServletRequestAttributeListener:用于监听ServletRequest请求域中属性的变化
attributeAdded(ServletRequestAttributeEvent srae)域中添加属性时执行该方法
attributeRemoved(ServletRequesttAttributeEvent srae)域中移除属性时执行该方法
attributeReplaced(ServletRequestAttributeEvent srae)域中替换属性时执行该方法
7.HttpSessionBindingListener:用于感知对象和会话域绑定的监听器
valueBound(HttpSessionBindingEvent)数据添加到会话域中(绑定)时执行该方法
valueUnBound(HttpSessionBindingEvent)数据从会话域中 删除(解绑)时执行该方法
8.HttpSessionActivationListener:用于感知会话域中对象钝化和活化的监听器
sessionWillPassivate(HttpSessionEvent se)会话域中数据钝化时执行该方法
sessionDidActivate(HttpSessionEvent se)会话域中数据活化时执行该方法