Cookie
1.概念:客户端会话技术,将数据保存到客户端
2.快速入门:
*使用步骤
1.来创建Cookie对象,绑定数据
*new Cookie(String name,String value)
2.发送cookie对象
*response.addCookie(Cookie cookie)
3.获取cookie,拿到数据
*Cookie[] cookie=request.getCookie()
3.实现原理
*基于响应头set-cookie和请求头cookie响应
4.cookie的细节
1.一次可不可以发送多个cookie
可以创建多个Cookie对象,使用response调用多次addCookie方法即可
2.cookie在浏览器中能保存多长时间
1.默认情况下,当浏览器关闭,Cookie数据自动销毁
2.持久化存储
*setMaxAge(int second)
1.正数:jiangcookie数据写到硬盘中。持久化存储。second为存活时间
2.负数:默认值,只能存在浏览器当中
3.零:马上删除cookie信息
3.Cookie能不能存储中文数据
*在Tomcat8之前 cookie不能存储中文数据,否则会出错
*需要将中文转码——一般采用URL编码
*在Tomcat8之后 cookie支持中文数据
4.cookie获取范围多大?
*假设在一个服务器当中,服务器配置了几个项目,那么不同项目的Cookie能不能共享?
*默认是不能共享的
*setPath(String Path):设置cookie的获取范围。默认情况下,设置的是项目当前的虚拟目录
*如果要共享,这可以将path的取值设置为"/ "
*不同的Tomcat服务器的cookie也是可以共享的
*setDomain(String path):如果设置一级域名相同,那么多个服务器之间的Cookie就可以共享了
*setDomain(".baidu,com"),那么 tieba.baidu.com与news.baidu.com中的cookie就可以共享
Cookie的特点和作用
1.cookie存储在客户端浏览器
2.浏览器对单个cookie的大小有限制以及对同一个域名下的总cookie数量也有限制(一般20个以内)
*作用:
1.cookie一般用于存储少量不太敏感的数据
2.在不登陆的情况下,完成服务器对客户端身份的识别。如对网页显示界面的修改操作。
Session
1.概念:服务器端的会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器的对象中。
2.快速入门:
获取HttpSession
HttpSession session=request.getSession()
使用HttpSession对象:
HttpSession session=request.getSession()
Object getAttribute(String name)
void setAttribute(String name,Object value)
void removeAttribute(String name)
3.原理分析
*Session的实现是通过Cookie的
4.细节:
1.当客户段关闭后,服务器不关闭,两次获取的Session并是同一个吗?
*默认情况下不是
*但可以通过cookie获取Session的JSESSIONID信息,设置其最大存活时间。
Cookie c=new Cookie("JSESSIONID",Session.getID());
c.setMaxAge(60*60)
response.addCookie()
2.客户端关闭后,服务器关闭后,两次获取的session是同一个吗?
*不是同一个,但是要确保数据不丢失
*Session的钝化
*在服务器正常关闭之前,将session对象系列化到硬盘是上。
*Session的活化:
*在服务器启动之后,将session文件转换为内存中的session对象即可。
3.Session的失效时间?
*服务器关闭时失效
*session调用方法invalidate(),销毁自己
*session默认失效时间是30分钟,30分钟内session不活动就会被消除
5.session特点
1.session用于存储一次会话中的多次请求数据,存储在服务端
2.session可以存储任意类型,任意大小的数据
3.session数据较cookie数据更为安全。
JSP入门学习
1.概念
*Java Server Pages:Java服务器端页面
*可以理解为:一个特殊的页面,其中即可以指定定义的Html标签,又可以定义Java代码
*用于简化书写
2.实现原理
1.浏览器请求访问jsp文件,服务器解析请求消息,找是由有该jsp资源
2.如果找到,就将jsp文件转化为.java文件
3.编译.java文件,生成.class字节码文件
4.由字节码提供访问
5.JSP本质上就是Servlet
3.JSP脚本;JSP声明Java代码的方式
1.<%Java代码%>:定义的Java代码,在service中.service方法可以定义什么,该脚本就可以定义什么。
2.<%!Java代码%>:定义的是成员,可以是成员变量,也可以是成员方法。
3.<%=Java代码%>:定义Java代码会输出到页面上,输出语句可以定义什么这里就可以定义什么。
4.JSP内置对象:
*在jsp页面中不需要创建和获取,可以直接拿来使用的对象
*如:
*request
*response
*out:字符的输出流对象。可以将数据输出到页面上。和response。getWriter()类似
*response。getWriter()和out的区别
*在tomcat服务器真正给客户作响应之前,先会找response缓冲区的数据,再找out缓冲区的数据
*response.getWrite()的数据永远在out.writer()之前