日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > Webx框架:會話管理

Webx框架:會話管理

來源:程序員人生   發布時間:2015-01-10 08:48:20 閱讀次數:4343次

在Servlet中,Session和Cookie是分開的。Session1般保存在內存中,固然也能夠保存在數據庫等其他地方。如果保存在內存中,對服務集群來講就需要解決Session同享的問題。如果保存在數據庫,就存在單點故障、性能差等問題。

webx提供了會話框架,將session這樣復雜的問題統1進行解決。在webx框架中,主張將cookie合并到session中,再通過規則,路由到cookie或session中。cookie保存在客戶端,session保存在服務端,它們的區分這里就不贅述了。

webx中有1個SessionStore的概念。它相當于Session的保存容器。容器可以配置不同的編碼、加密方式等。與servlet配置類似,session的配置有storesstore-mappings。下面是1個簡單的例子(僅用于調試):

<session>
  <stores>
    <session-stores:simple-memory-store id="simple" />
  </stores>
  <store-mappings>
    <match name="*" store="simple" />
  </store-mappings>
</session>

SessionID。在Servlet中,默許是通過名為JSESSIONID的Cookie保存SessionID。在webx中可以換用不同的Cookie名稱,而且SessionID的生成方法也能夠改變。下面是改變SessionID字段的例子。

<session>
  <id cookieEnabled="true" urlEncodeEnabled="false">
    <cookie name="JSESSIONID" domain="" maxAge="0" path="/" httpOnly="true" secure="false" />
    <url-encode name="JSESSIONID" />
    <session-idgens:uuid-generator />
  </id>
</session>

Cookie屬性有下面幾個,都可以通過屬性進行設置。namedomainmaxAgepathhttpOnlysecure

與其他框架不同的是,如果Http要求中的SessionID不認識,之前沒有出現過,那末會將HTTP要求中的SessionID作為該客戶真個SessionID,而不是創建1個新的。這樣設計的好處是,有可能SessionID與其他利用同享,其他利用生成的SessionID是不能覆蓋的。

會話RequestContext的屬性有以下幾個。

屬性 作用
maxInactiveInterval Session的失效時間
keepInTouch 默許為false。如果為true,表示和servlet中的session模式1樣,每次讀取session的時候更新session,如果為false,只有在session內容產生改變時才更新session時間。
forceExpirationPeriod 疏忽失效時間,即便這個session1直被訪問,超過這個事件,session還是會失效
modelKey 用于保存session狀態的對象名稱,1般不需要修改。默許為SESSION_MODEL
會話貯存

SessionStore。下面是SessionStore的1個例子。

<stores>
  <session-stores:store id="store1" />
  <session-stores:store id="store2" />
  <session-stores:store id="store3" />
</stores>
<store-mappings>
  <match name="*" store="store1" />
  <match name="loginName" store="store2" />
  <matchRegex pattern="key.*" store="store3" />
</store-mappings>

match標簽采取了正則匹配,如果有多個規則符合正則表達式,那末有下面的優先級:

  • 精確匹配最優先
  • 較長的regex優先
  • 默許規則為*

默許規則只能有1個。

SessionModel。它是1個寄存在Session中的字段,用于記錄Session中各個字段的生命周期數據,比如創建時間,最后更新時間等。它可以看成1個普通的session字段,因此可以配置匹配規則,放到指定的session容器中。

SessionModel可以轉換成字符串,默許是轉換成json,并作為普通的字段保存到session中。

<session-model-encoders>
  <model-encoders:default-session-model-encoder />
  <model-encoders:model-encoder class="..." />
  <model-encoders:model-encoder class="..." />
</session-model-encoders>

Session攔截器。框架提供了兩個自帶的攔截器:lifecycle-loggerattribute-whitelist,它們的用法在下面這個例子中已非常清楚了。固然也能夠定義自己的攔截器,有兩種攔截器可以選擇:

  • SessionLifecycleListener:監聽Session的生成、燒毀、訪問事件。
  • SessionAttributeInterceptor:監聽Session的讀寫事件。 框架會根據基類自動配置不同的攔截器。
    <request-contexts:interceptors
    xmlns="http://www.alibaba.com/schema/services/request-contexts/session/interceptors">
    <lifecycle-logger />
    <attribute-whitelist>
      <attribute name="_csrf_token" />
      <attribute name="_lang" />
      <attribute name="loginUser" type="com.alibaba...MyUser" />
      <attribute name="shoppingCart" type="com.alibaba....ShoppingCart" />
    </attribute-whitelist>
    <interceptor class="..." />
    </request-contexts:interceptors>

CookieStore。有些安全性要求不高的session字段沒必要保存在服務端,而是保存在閱讀器端。這樣對服務器的壓力也會小1些。

Cookie中只能寄存字符串,而session中可以寄存java對象,因此對接cookie和session需要將Java對象轉換成字符串。這類轉換交給encoder進行。配置方法以下:

<session-stores:cookie-store>
  ...
  <session-stores:encoders>
    <session-encoders:encoder class="..." />
    <session-encoders:encoder class="..." />
    <session-encoders:encoder class="..." />
  </session-stores:encoders>
</session-stores:cookie-store>

可以指定多個encoder,寫入session時,使用第1個encoder進行編碼,讀取session時,順次使用不同的解碼器進行解碼,直到正確解碼為止。

框架自帶了幾個編碼器,默許使用hessian進行編碼。

<session-stores:encoders>
  <session-encoders:serialization-encoder />
</session-stores:encoders>

編碼后加密。

<session-encoders: 生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久国产精品免费一区二区三区 | 亚洲国产精品久久久 | 欧美婷婷色 | 精品中文字幕一区二区三区 | 日本精品在线 | 国精品一区二区 | 国产激情美女久久久久久吹潮 | 亚洲精品久久久久久久久久久久久久 | 亚洲综合黄色 | 日韩精品电影 | 亚洲高清中文字幕 | 伊人99 | 日韩福利在线 | 久久久久久久婷婷 | 中文字幕 av在线 | 久久精品国产v日韩v亚洲 | 99r久久| 优优亚洲精品久久久久久久 | 欧美成人福利 | 久久99成人 | 三级久久 | 久久www免费人成看片小草 | 精品免费国产一区二区三区四区 | 综合视频在线 | 91精品国产欧美一区二区 | 国产精品99久久久久久动医院 | 日韩成人美女视频 | 精品国产不卡一区二区三区 | www在线 | 91九色论坛| 亚洲一区中文字幕 | 日韩欧美一二三 | 欧美日韩精品在线观看 | 亚洲综合二 | 国产传媒在线播放 | 18做爰免费视频网站 | 国产福利网站 | 老熟妇午夜毛片一区二区三区 | 欧美日韩在线视频一区二区 | 亚洲一区二区视频在线 | 亚洲久久视频 |