JavaWeb——会话技术的学习

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()之前

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值