Http會(huì)話(cookie&session)

http會(huì)話

從打開一個(gè)瀏覽器訪問某個(gè)站點(diǎn),到關(guān)閉這個(gè)瀏覽器的整個(gè)過程,稱為一次會(huì)話。會(huì)話技術(shù)就是記錄這次會(huì)話中客戶端的狀態(tài)和數(shù)據(jù)的

cookie技術(shù)

public class CookieDemo extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*一、服務(wù)器發(fā)送給客戶端一個(gè)cookie*/
        /*1.創(chuàng)建cookie,不能存儲(chǔ)中文 */
        Cookie cookie = new Cookie("name","tom");
        /*
        * 2.設(shè)置cookie在客戶端持久化時(shí)間
        * 注意:如果不設(shè)置持久時(shí)間,cookie數(shù)據(jù)存儲(chǔ)到瀏覽器內(nèi)存中,瀏覽器關(guān)閉,cookie信息銷毀
        * 如果設(shè)置持久化時(shí)間,cookie信息就會(huì)持久化到瀏覽器的硬盤文件夾中
        * 單位:秒,超過這個(gè)時(shí)間,瀏覽器自動(dòng)清除cookie信息
        * 如果設(shè)置為0,且路徑和、同名鍵值的cookie相同,則為刪除cookie操作
        * */
        cookie.setMaxAge(10*60); //
        /*
        * 3.設(shè)置攜帶路徑
        * 如果不設(shè)置,那cookie信息訪問產(chǎn)生該cookie的web資源的所有路徑都會(huì)有cookie
        * */
        cookie.setPath(request.getContextPath());
        /*4.向客戶端發(fā)送cookie信息*/
        response.addCookie(cookie);


        /*二、服務(wù)器獲取客戶端cookie*/
        Cookie[] cookies = request.getCookies();
        for(Cookie c:cookies){
            if(cookie.getName().equals("name")){
                System.out.println(c.getValue());
            }
        }

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        super.doPost(request, response);
    }
}

session技術(shù)(常結(jié)合cookie使用)

public class SessionDemo extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*得到session對(duì)象*/
        HttpSession session = request.getSession();
        /*第一次訪問,服務(wù)器創(chuàng)建新的session,如果存在則不會(huì)創(chuàng)建新的session*/
        if(session.isNew()){
            System.out.println("當(dāng)前session為服務(wù)器新創(chuàng)建的"+session.getId());
        }
        /*向session對(duì)象中放置數(shù)據(jù)*/
        session.setAttribute("sex","男");
        /*取session數(shù)據(jù)*/
        String sex = (String)session.getAttribute("sex");
        /*移除session中數(shù)據(jù)*/
        session.removeAttribute("sex");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        super.doPost(request, response);
    }
}

session對(duì)象的生命周期

/*創(chuàng)建:第一次執(zhí)行request.getSession()時(shí)*/
request.getSession();
/*手動(dòng)銷毀*/
session.invalidate();
/*
* session過期/失效(默認(rèn)30分鐘,計(jì)算方式:從不操作服務(wù)器端資源開始計(jì)時(shí))
* session過期時(shí)間配置在web.xml中配置,配置如下
*/
<web-app>
  ...
  <session-config>
    <session-timeout>60</session-timeout>
  </session-config>
  ...
</web-app>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、會(huì)話技術(shù)簡(jiǎn)介1.存儲(chǔ)客戶端的狀態(tài)由一個(gè)問題引出今天的內(nèi)容,例如網(wǎng)站的購(gòu)物系統(tǒng),用戶將購(gòu)買的商品信息存儲(chǔ)到哪 ...
    神豪VS勇士贏閱讀 298評(píng)論 0 0
  • 會(huì)話技術(shù) 從打開一個(gè)瀏覽器訪問某個(gè)站點(diǎn),到關(guān)閉這個(gè)瀏覽器的整個(gè)過程,成為一次會(huì)話。會(huì)話技術(shù)就是記錄這次會(huì)話中客戶端...
    So_ProbuING閱讀 380評(píng)論 0 2
  • cookie和session 會(huì)話技術(shù)(重要) ## 1.會(huì)話:概念:先打開一個(gè)瀏覽器,瀏覽器的網(wǎng)頁(yè)(資源,包含多...
    流年劃破容顏_cc55閱讀 386評(píng)論 0 0
  • java的會(huì)話管理:Cookie和Session 1.Cookie機(jī)制 Cookie技術(shù)是客戶端的解決方案,Coo...
    為愛放棄一切閱讀 473評(píng)論 0 0
  • 什么是會(huì)話? web語言中的會(huì)話web會(huì)話可簡(jiǎn)單理解為:用戶開一個(gè)瀏覽器,訪問某一個(gè)web站點(diǎn),在這個(gè)站點(diǎn)點(diǎn)擊多個(gè)...
    冒險(xiǎn)小A閱讀 248評(píng)論 0 0

友情鏈接更多精彩內(nèi)容