多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

Webx框架:會話管理

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

在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: 生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产午夜精品久久久久 | 三级黄在线观看 | 国产福利写真视频在线观看 | 最近中文字幕完整视频大全版 | 欧美理伦 | 欧美亚洲国产精品久久第一页 | 亚洲欧洲久久久精品 | 欧美精品 日韩 | 一区二区不卡在线 | 视频三区精品中文字幕 | 国产一区二区亚洲精品 | 精品福利在线观看 | 欧美最猛性xxxxx喷水 | 亚洲妇人成熟性成熟网站 | 国产成人精品高清不卡在线 | 爱爱小视频免费体验区在线观看 | 日本一级毛片在线观看 | 亚洲国产高清在线精品一区 | 久久精品国产亚洲a | 欧美在线一区二区三区不卡 | 中文字幕第一页在线视频 | 香蕉视频在线网址 | 国产婷婷一区二区在线观看 | 国产欧美日韩精品一区二 | freexx欧美| 亚洲国产精品一区二区三区 | 久久天天躁狠狠躁夜夜躁 | 中文字幕中文字幕中中文 | 日韩亚洲欧美性感视频影片免费看 | 日韩最新视频一区二区三 | free性欧美高清另类 | 亚洲乱码在线播放 | 久久伊人免费视频 | 成人国产永久福利看片 | 日本中文在线播放 | 图片区亚洲色图 | 亚洲人成综合在线播放 | 国产精品亚洲一区二区三区 | 欧美性淫爽www视频播放 | 国产免费久久精品久久久 | 久久久久国产免费 |