• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Javaweb內(nèi)置對象session的仿真

      2019-10-21 10:07汪美
      科技風 2019年10期
      關鍵詞:信息共享仿真

      摘要:在Javaweb開發(fā)過程中,為便于多個頁面之間信息的共享,經(jīng)常會使用Session內(nèi)置對象在多個頁面之間進行會話。本文從內(nèi)置對象Session誕生開始,簡要介紹其運行機理,并對其常用函數(shù)進行分析與仿真,便于讀者深入理解其內(nèi)部機制并更好的利用此類函數(shù)。

      關鍵詞:Session;Cookie;仿真;信息共享

      1 概述

      web應用允許多個客戶端同時訪問,為實現(xiàn)不同用戶之間的信息共享,又要保證不同用戶之間信息互不影響,這時常常會用到內(nèi)置對象Session。那么內(nèi)置對象Session是如何對不同用戶中的共享變量進行操作的呢?不同用戶之間的信息如何保證互不影響的呢?每個用戶對web應用的訪問都是由多個請求和響應頁面組成的,那么如何在地址改變的情況下操作多頁面間的共享變量呢?

      2 Session與Cookie

      當我們從瀏覽器打開一個頁面時,都會用到HTTP協(xié)議,然而HTTP協(xié)議是一種無狀態(tài)協(xié)議。服務器不會保留請求的任何信息,下一次客戶端進行請求時,服務器沒有方法可以將它與其他客戶端區(qū)別開來,這就是Http的協(xié)議無狀態(tài)性。[1]那么應如何實現(xiàn)對不同地址的頁面進行信息共享。為解決此問題Cookie誕生了。Cookie是一種客戶端存儲數(shù)據(jù)方式,將少量信息存儲在本地以實現(xiàn)不同頁面之間共享到相同信息。但是Cookie存在于客戶端,并且它本身存儲大小也有限,可以隨意的修改,很不安全。此時一種新的存儲會話機制Session應運而生。Cookie機制采用的是在客戶端保持狀態(tài)的方案.而Session機制采用的是在服務器端保持狀態(tài)的方案。[2]

      3 Session機制與常用函數(shù)

      3.1 運行機制

      Session是用來保持不同用戶狀態(tài)并基于Web服務器的會話方法。Session允許不同用戶基于Web服務器內(nèi)存在整個用戶會話過程中保持任何對象。

      一個會話開始時,Servlet容器為HttpSession分配唯一一個標識符,稱為Session ID,Servlet容器把Session ID作為cookie保存在客戶端瀏覽器中,每次客戶發(fā)送Http請求時,Servlet容器可以從HttpServletRequest對象中讀取Session ID,并根據(jù)Session ID找到相應的HttpSession對象,從而獲取客戶的狀態(tài)信息。Session通過getID的方式產(chǎn)生一個Session ID,并通過Cookie的形式寫入客戶端,客戶端再通過請求,將該ID返回給服務器端,因此服務器就知道與客戶端對應的Session對象是哪一個。當客戶第一次訪問Web應用中支持Session的某個頁面時,就會創(chuàng)建一個新的Session。由于Session過多會給服務器造成超大負荷,因此產(chǎn)生了Session的生命周期的概念,Servlet容器會在生命周期結束時將Session所占用的資源釋放掉。

      3.2 常用函數(shù)

      其最常用的方法有void setAttribute(String,Object)和Object getAttribute(String),以實現(xiàn)不同頁面之間變量的保存和獲取。下文中將對這兩個函數(shù)進行仿真,以便學習者對Sesison有更深一步的認識和理解。

      4 session的仿真

      其實在JAVA中Session的實現(xiàn)是基于多級聯(lián)的Map容器。首先建立一個Java類MySession來模擬web中的Session。因為要實現(xiàn)仿真,在兩個函數(shù)的參數(shù)列表中分別多加一個參數(shù)來實現(xiàn)對不同用戶信息的存儲,由此先得到仿真函數(shù)雛形:

      static Map>m = new HashMap();

      static void setAttribute(String client,String key,Object value)

      {

      Mapclient0 = m.get(client);

      if(client0 == null)

      {

      client0 = new HashMap();

      client0.put(client,client0);

      }

      else

      client0.put(key,value);

      }

      static Object getAttribute(String client,String key)

      {

      Mapclient0 = m.get(client);

      if(client0 == null)

      return null;

      return client0.get(key);

      }

      對于一個基于JAVA技術的多線程仿真機制來講,需要由Java來提供線程組類,線程管理和控制的方法則需要由線程組來提供,便于開發(fā)人員開發(fā)。[3]基于此,利用Java多線程配合不同瀏覽器模擬多個用戶使用web同一應用實現(xiàn)不同頁面的信息存儲。

      5 結語

      實際上,我們經(jīng)常使用的函數(shù)都是基于簡單的知識點拼接而成。本次仿真也是如此,首先了解Session的產(chǎn)生背景,通過產(chǎn)生的背景發(fā)現(xiàn)機制的本質(zhì)。其次掌握Session的主要用途,經(jīng)過仿真,我們能夠深入理解,更能更好的使用此機制。

      參考文獻:

      [1]冉春玉,陳建軍.基于JSP/Servlet的Http協(xié)議無狀態(tài)性解決方案.武漢理工大學學報,2003,25(1):77-80.

      [2]張瑞興,張翠梅.Cookie和Session機制的初步探討.考試周刊,2008,(36):170-171.

      [3]盧鳳偉.Java技術的發(fā)展趨勢分析.數(shù)字通信世界,2017,(5):101-102.

      作者簡介:汪美(1998-),女,漢族,遼寧阜新人,本科,研究方向:計算機科學。

      猜你喜歡
      信息共享仿真
      公共危機事件機理及對策研究
      橫向動態(tài)聯(lián)盟的信息共享效應研究
      基于WebGIS的合肥中小企業(yè)信息共享平臺的研究
      一種幫助幼兒車內(nèi)脫險應急裝置的仿真分析
      基于供應鏈的制造業(yè)服務化客戶逆向服務研究
      Buck開關變換器的基本參數(shù)設計及仿真分析
      試析PLC控制下的自動化立體倉庫仿真情況分析
      基于MADYMO的航空座椅約束系統(tǒng)優(yōu)化設計
      中國體態(tài)假人模型與FAA Hybrid Ⅲ 型假人模型沖擊差異性分析
      中國鐵水聯(lián)運信息系統(tǒng)物理框架設計
      二手房| 台安县| 沙雅县| 监利县| 社旗县| 托克托县| 新田县| 五河县| 社旗县| 神池县| 长丰县| 沽源县| 南皮县| 梅河口市| 米泉市| 苍梧县| 临沂市| 孝义市| 康定县| 延长县| 晋宁县| 嘉黎县| 台江县| 池州市| 巴青县| 吉隆县| 武汉市| 武威市| 绥棱县| 湘潭县| 福海县| 高碑店市| 阳城县| 青神县| 伊金霍洛旗| 肇源县| 大埔县| 红原县| 高雄县| 通道| 紫云|