麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

在Web Services中管理Sessions

2019-11-18 11:35:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友


  在Web service中通常采用兩種公認(rèn)技術(shù)來(lái)治理session,一種是借助HTTP和HTTP cookies,另一種是用SOAP headers。Axis能幫你實(shí)現(xiàn)這兩種技術(shù)。

  在Web service中沒有一種治理session的標(biāo)準(zhǔn)方法,只有兩種公認(rèn)的技術(shù),一種是依靠HTTP和HTTP cookies,另一種,或許也是最重要的一種方法,就是用SOAP headers。Axis能幫助開發(fā)人員實(shí)現(xiàn)這兩種技術(shù)。
  在Axis中缺省使用的是HTTP managed sessions。在一個(gè)服務(wù)器中這么做是十分輕易的,因?yàn)榇蠖鄶?shù)對(duì)Axis Web service的治理是通過org.apache.axis.MessageContext的一個(gè)實(shí)例來(lái)完成的。在一個(gè)Axis Web service中你可以通過調(diào)用MessageContext類中的靜態(tài)方法來(lái)得到MessageContext的一個(gè)實(shí)例:

public class SessionService
{
public String echo(String in)
{
MessageContext mc =MessageContext.getCurrentContext();
  MessageContext中有一個(gè)名為setMaintainSession的方法,調(diào)用它便可激活session。但在編寫(Axis 1.1 RC2)時(shí),session對(duì)象只有在被訪問時(shí)才能激活,如下列代碼所示:

public class SessionService
{
public String echo(String in)
{
MessageContext mc = MessageContext.
getCurrentContext();
Session session = mc.getSession();
String name = (String)session.get("name");
return in;
}
}
  這樣會(huì)導(dǎo)致Axis架構(gòu)生成一個(gè)set-cookie header:Set-Cookie:

JSESSIONID=49EBBB19A1B2F8D10EE075F6F14CB8C9;
Path=/axissessions
  客戶端需要在Cookie header中返回這個(gè)Cookie來(lái)保持該session。為了使axis運(yùn)行狀態(tài)下的客戶端能夠?qū)崿F(xiàn)這一點(diǎn),就必須調(diào)用org.apache.axis.client.Service接口的setMaintainSession方法。該接口是由WSDL2java生成工具所生成的Locator類實(shí)現(xiàn)的。調(diào)用該方法之后,Axis架構(gòu)會(huì)自動(dòng)將該cookie返回到服務(wù)器中:

public static void main(String[] args)
{
UseSessionsServiceLocator locator = new UseSessionsServiceLocator();
locator.setMaintainSession(true);
  header看起來(lái)就像這樣:

Cookie: JSESSIONID=49EBBB19A1B2F8D10EE075F6F14CB8C9
  通過HTTP傳輸cookie是沒有問題的,但假如客戶端或服務(wù)器不通過HTTP,或使用的是通過多個(gè)Web services傳入調(diào)用的multihop service,那么這種方法就不那么有效了。一種更好的方法是用SOAP headers來(lái)加載session id。

  Axis架構(gòu)支持多個(gè)Handlers。通過在一個(gè)Web service請(qǐng)求過程中調(diào)用調(diào)棧(call stack),Handlers能夠被放置到很多地方,它可以和傳輸過程結(jié)合起來(lái),或者和一個(gè)Web service一起使用。Handlers可以被插入其中來(lái)處理Web service請(qǐng)求中的請(qǐng)求和/或響應(yīng)語(yǔ)句。 photoshop教程 數(shù)據(jù)結(jié)構(gòu) 五筆輸入法專題 QQ病毒專題 共享上網(wǎng)專題 Google工具和服務(wù)專題


  Axis帶有一個(gè)名為org.apache.axis.handlers.SimpleSessionHandler的handler,它用于提供基于session治理的SOAP header。要使用這個(gè)簡(jiǎn)單的帶有Web service的session handler,你必須告知Axis架構(gòu)將該handler添加到handler鏈中。你可以通過將該handler信息添加到server-config.wsdd來(lái)實(shí)現(xiàn)這一點(diǎn);一個(gè)簡(jiǎn)單的處理方法是定義一個(gè)包含額外配置Web service所需的WSDD文件,然后用Axis部署工具來(lái)部署這個(gè)配置文件。

  這個(gè)WSDD文件看起來(lái)就像這樣:



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 福利免费观看 | 日韩视频―中文字幕 | 羞羞的视频免费观看 | 吾色视频| 亚洲综合视频网 | 激情小说激情电影 | 久草在线资源福利站 | 一级免费在线视频 | av黄色片网站 | 黄污视频在线看 | 在线1区| 欧美成人激情 | 久久久久北条麻妃免费看 | 九九热视频这里只有精品 | 国内精品视频饥渴少妇在线播放 | 欧洲黄色一级视频 | 中国精品久久 | 色污视频在线观看 | 爱爱视频天天干 | 成人电影毛片 | 国产精品av久久久久久网址 | 国产精品片一区二区三区 | 91短视频网页版 | 久久免费视频3 | 久久久www成人免费毛片 | www.91tv| 中文日韩在线视频 | 精品国产91久久久久久久妲己 | 亚洲成人精品国产 | 成人国产视频在线观看 | 久久精品艹 | 人人看人人艹 | 免费在线观看毛片视频 | 一区二区三区无码高清视频 | 欧美日日操 | 久久91精品视频 | 国产成人精品午夜视频' | 精品黑人一区二区三区国语馆 | 亚洲最新无码中文字幕久久 | 国产黄色录像片 | 免费一级特黄毛片 |