| include指令 | jsp:include动作
---------------------------------------------------------------------------------------------
语法格式 |<%@include file= ".."%> | <jsp:include page="..">
---------------------------------------------------------------------------------------------
发生作用的时间 | 页面转换期间 | 请求期间
---------------------------------------------------------------------------------------------
包含的内容 | 文件的实际内容 | 页面的输出
----------------------------------------------------------------------------------------------
转换成的Servlet | 主页面和包含页面转换为一个Servlet |主页面和包含页面转换为独立的Servlet
----------------------------------------------------------------------------------------------
编译时间 | 较慢--资源必须被解析稍快 | 较快
-----------------------------------------------------------------------------------------------
执行时间 | 稍快 | 较慢--每次资源必须被解析
session和cookie的使用
1.会话
版本1:当前浏览器与服务器间多次的请求、响应关系,被称作一个会话
版本2:打开浏览器,进行网页的浏览,到关闭浏览器的过程,这个过程称为一次会话
2.session内置对象
2.1 session内置对象简介
(1)session表示客户端与服务器的一次会话
(2)Web中的session指:用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,
也就是用户浏览网站所花费的时间。
(3)从上述定义中可以看到,session实际是一个【特定的时间概念】
(4)服务器的内存中,保存着同用户的session。
2.2 内置对象session的常用方法
(1)void setAttribute(String key,Object value):以key/value的形式保存对象值
(2)Object getAttribute(String key):通过key获取对象值
(3)void invalidate():设置session对象失效
(4)String getId():获取sessionid
(5)void setMaxInactiveInterval(int interval):设定session的非活动时间
(6)int getMaxInactiveInterval():获取session的有效非活动时间(以秒为单位)
(7)void removeAttribute(String key):从session中删除指定名称(key)所对应的对象
2.3 session与窗口的关系
(1)每个session对象都与浏览器一一对应,重新开启一个浏览器,相当于重新创建一个session对象。
(2)通过超链接打开的新窗口,新窗口的session与其父窗口的session相同
3.cookie
3.1 概述:cookie是Web服务器保存在客户端的一系列文本信息
3.2 cookie的作用:
对特定对象的追踪
统计网页浏览次数
简化登录
3.3 安全性能:容易信息泄露
3.4 语法:
①创建cookie对象
Cookie newCookie = new Cookie(String key,String value);
②写入cookie
response.addCookie(newCookie);
③读取cookie
Cookie[] cookies = request.getCookies();
3.5 常用方法:
void setMaxAge(int expiry):设置cookie的有效期,以秒为单位
void setValue(String value):在cookie创建后,对cookie进行赋值
String getName():获取cookie的名称
String getValue():获取cookie的值
3.6 编码问题
//创建Cookie时
Cookie cookie = new Cookie(name, URLEncoder.encode(value, "UTF-8"));
//读取Cookie时
String value = URLDecoder.decode(cookie.getValue(), "UTF-8");
3.7 session与cookie的比较
session是在服务器端保存用户信息,Cookie是在客户端保存用户信息
session中保存的是对象,Cookie保存的是字符串
session随会话结束而关闭,Cookie可以长期保存在客户端
不重要的信息使用cookie保存,重要的信息使用session保存
1.引入
1.1 案例:张三与李四的会谈(从开始到结束)====》客户端与服务器
2.会话
2.1 概述:一次会话中包含多次请求和响应
一次会话:浏览器第一次给服务器资源发送请求,会话建立,知道有一方断开为止。
2.2 功能:在一次会话的范围内的多次请求间,共享数据
2.3 方式:
(1)客户端会话技术:Cookie
(2)服务端会话技术:session
3.Cookie
3.1 概述
客户端会话技术,将数据保存到客户端
3.2 快速入门
使用步骤:
(1)创建Cookie对象,绑定数据
new Cookie(key,value);
(2)发送Cookie对象(从服务端---》客户端)
request.addCookie(cookie)
(3)获取Cookie,获取数据
request.getCookies()
4.Cookie的细节
4.1 一次可不可以发送多个cookie?
** 可以
** 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。
4.2 cookie在浏览器中保存多长时间?
(1)默认情况下,当浏览器关闭后,Cookie数据被销毁
(2)持久化存储
** setMaxAge(int seconds);秒
** 参数:
正数---》将Cookie数据写到硬盘的文件中。持久化存储【cookie的存活时间】
** 负数:
默认值
** 零:
删除cookie信息
4.3 cookie能不能存储中文?
** 在tomcat8.0之前 cookie中不能直接存储中文数据。
** 需要将中文数据转码---》一般采用URL编码
** 在tomcat8.0之后 ,cookie支持中文数据,特殊字符还是不支持,建议使用URL编码存储
使用URL解码解析
* 编码 URLEncoder.encode("字符串","utf-8");
* 解码 URLDecoder.decode("字符串","utf-8");
5.Cookie的特点和作用
特点:
(1)cookie存储在数据在客户端浏览器
(2)浏览器对于单个cookie的大小有限制(4KB)以及对同一个域名下的总cookie数量也有限制(20个)
作用:
(1)cookie一般用于存储少量的不太敏感的数据
(2)在不登录的情况下,完成服务器对客户端的身份识别
session-》内置对象
1.概述
服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象。jsp:session servlet:HttpSession
2.快速入门
(1)getAttribute(String name);
(2)setAttribute(String name,Object value)
(3)removeAattribute(String name)
3.细节
1.当客户端关闭后,服务器不关闭,两次获取session是否为同一个?
* 默认情况下,不是
* 如果需要相同,则可以创建cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存。
Cookie c = new Cookie("JSESSIONID",session.getId());
c.setMaxAge(60*60);
response.addCookie(c);
2.客户端不关闭,服务器关闭后,两次获取的session是同一个吗?
* 不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作。
** session的钝化:
在服务器正常关闭之前,将session对象序列化到硬盘上
** session的活化:
在服务器启动后,将session文件转化为内存中的session对象即可。
3.session什么时候被销毁?
(1) 服务器关闭
(2) session对象调用invalidate()方法
(3)session默认失效时间 30分钟=》web.xml
4.session的特点
session用于存储一次会话的多次请求的数据,存在服务器端
session可以存储任意类型,任意大小的数据
session与Cookie的区别
1.session存储数据在服务端,Cookie在客户端
Cookie存储的数据只能是文本,Session---Object
2.session没有数据大小限制,Cookie有
3.session数据安全,Cookie相对于不安全