• JavaWeb系列之八(Cookie&Session)


    

    1.jsp的入门
        jsp就是一个servlet,终于会被编译成servlet,jsp:java server pages,java服务器端页面,包括html+java+jsp的指令
        使用servlet向页面输出内容,须要使用字节流或者字符流向页面输出
        jsp:java server pages。java服务器端的页面
        运行过程:放到tomcat work文件夹,在訪问的时候,会编译成servlet。
        嵌入java代码的三种方式
        第一种: <%!

    int num=10 %>:表示的一个是成员变量(非常少用)
        另外一种:<%= %>:页面输出内容,它会给我们生成到service里面,向页面输出内容;不能加分号
        第三种:<% %>:也是在service里面载入
        样例:五行五列
            <table border="1" bordercolor="blue">
            <%
            for (int i = 1; i <= 5; i++) {
            %>
            <tr>
            <%
            for (int j = 1; j <= 5; j++) {
            %>
            <td>aaa</td>
            <%
            }
            %>
            </tr>
            <%
            }
            %>
            </table>
    2.el的入门
        el的表达式:获取域对象的值
        假设多个域对象名称是同样的。使用el表达式获取范围小的,
        ${requestScope.msg} :得到request域的对象
        ${application.masg}:得到ServletContext的值
        假设没有这个值得到的是null
    3.会话管理
        打开浏览器。到关闭浏览器
        购物信息的存储。
        requset域对象的特点:范围一次请求
       
        sevletContext域
           
        用会话来存储购物的技术
        cookie技术:client技术
            使用cookie
           
            首先第一次买东西A。到server得到A,A通过Cookie返回到浏览器内存中,
            第二次买B,携带内存中的A一起发送,到server端,得到A。B,通过Cookie返回到浏览器的内存中
            结算的时候,把内存中的两个值一起发送给server,然后进行结算
    session技术:server端的技术
       
    4。案例一:实现用户上一次的訪问时间
         方法:
        得到cookie
        Cookie[] getCookies()
        //得到全部cookie
        Cookie[] cookies = request.getCookies();
        通过cookie把值返回到浏览器的内存中(回写)
        addCookie(Cookie cookie)
        使用Cookie的构造
        Cookie(java.lang.String name, java.lang.String value)
        name:cookie的名称
        value:cookie值
    5.cookie的api的使用
        getName():得到cookie名称
        getValue():得到cookie的值
        setMaxAge(int expiry):设置cookie的有效时长
        有两种会话方式:
        第一种会话级别:特点是浏览器关闭了,cookie销毁。在默认的情况下会话级别
        另外一种持久性cookie:在一定范围内容cookie会一直有效
        设置有效时长:使用setMaxAge方法设置 setMaxAge(int expiry)參数:秒
        设置有效路径:使用setPath(java.lang.String uri)
        技巧 setPath("/");
        setPath(uri)
        销毁持久的cookie,到时间销毁,setMaxAge(0);
        
        setDomain("www.sina.com");
        和这个域名同样会携带域名信息
        技巧:setDomian(".sina.com");
    6.cookie的细节问题
        一个Cookie仅仅能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
        一个WEB网站能够给一个WEB浏览器发送多个Cookie,一个WEB浏览器也能够存储多个WEB网站提供的Cookie。
        浏览器一般仅仅同意存放300个Cookie,每一个网站最多存放20个Cookie,每一个Cookie的限制大小为4KB。
        假设创建了一个cookie。默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中)。
        用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则须要使用maxAge和有效路径,
        并给出一个以秒为单位的时间。


        删除持久cookie。能够将cookie最大时效设为0,注意。删除cookie时。path必须一致,否则不会删除
    8.session的简单介绍
        session是server端技术
        session也是一个域对象
        范围:会话里面
        存值:setAttribute
        取值:getAttribute
        一个浏览器独占一个session对象
    10、session创建和销毁
        session创建,运行request方法getSession创建
        session销毁有三种方式
        第一种方式:非正常关闭server
        另外一种方式:session有一个默认的过期时间 30分钟
            <session-config>
            <session-timeout>30</session-timeout>
         </session-config>
        第三种:调用session经行销毁
        清空购物车的功能
        代码
        //得到session
        HttpSession session = request.getSession();
        //销毁session
        session.invalidate();
    12、禁用cookie之后session的使用
        session技术也是基于cookie,
        回写浏览器一把钥匙 jsessionid=qwwe233445
       
        禁用cookie之后使用session
        在地址后面;jsessionid=sessionid的值

        response. encodeRedirectURL(java.lang.String url)
        用于对sendRedirect方法后的url地址进行重写。

        response. encodeURL(java.lang.String url)
        用于对表单action和超链接的url地址进行重写

     * 在一般站点中。假设禁用了cookie,直接不让登录






  • 相关阅读:
    basic use of sidekiq
    查看远程git log
    通过rails console执行sql语句
    通过rails打开数据库
    如何用rake tasks 生成migration对应的sql
    Remainders Game (中国剩余定理)
    binary-tree-preorder-traversal
    minimum-depth-of-binary-tree (搜索)
    Find a multiple POJ
    linked-list-cycle (快慢指针判断是否有环)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5398028.html
Copyright © 2020-2023  润新知