日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

暑期项目经验(九) -- request session application

發(fā)布時(shí)間:2023/11/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 暑期项目经验(九) -- request session application 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

            request、session、application

一、基礎(chǔ)知識(shí)

可以看看? 淺談:request,session,application (http://blog.csdn.net/hzc543806053/article/details/7416007)

要點(diǎn):

作用域: request<session<application

共同方法:都可以使用 setAttribute(String name , Object o ) ,getAttribute(String name)

?

二、在java中獲取這三個(gè)對(duì)象

可以看以下原文 :http://www.blogjava.net/xcp/archive/2009/10/23/struts2_actioncontext1.html?opt=admin

2.1 struts2封裝后的三個(gè)Map? (使用ActionContext)

import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext;........ActionContext context = ActionContext.getContext(); Map request = (Map) context.get("request"); Map session = context.getSession(); Map application = context.getApplication();

2.2 與Servlet API耦合的訪問(wèn)方式(非IoC方式,使用ServletActionContext)

HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); HttpSession session = ServletActionContext.getRequest().getSession();

?

三、ActionContextServletActionContext的區(qū)別

  我們知道struts2接受客戶端請(qǐng)求,在Action中進(jìn)行處理后,將視圖結(jié)果返回。struts2容器自身不依賴于web容器,不用和servlet對(duì)象中的請(qǐng)求(request)、響應(yīng)(response)進(jìn)行關(guān)聯(lián),對(duì)于請(qǐng)求的參數(shù),通過(guò)paramerInterceptor將參數(shù)封裝在Action中,然后通過(guò)調(diào)用get、set方法將參數(shù)值設(shè)置進(jìn)Action之中。如果僅僅獲取參數(shù),可能有時(shí)候滿足不了開(kāi)發(fā)的需求,有時(shí)我們要獲取request或者response中的信息,要對(duì)其進(jìn)行設(shè)置、處理。

3.1 ActionContext

  是Action執(zhí)行的上下文,Action的上下文可以看作是一個(gè)容器,里面封裝了請(qǐng)求(Request)、會(huì)話(Session)、 Application等,這里面的Request、Session、Application是Map類(lèi)型的,往里面封裝的是鍵值對(duì),所以這就體現(xiàn)了 struts2不與底層servlet Api打交道,那么對(duì)很多web的相關(guān)對(duì)象進(jìn)行封裝,這樣可以達(dá)到Action與web層解耦。

3.2 ServletActionContext

  它繼承ActionContext,所以ServletActionContext也可以得到HttpServetRequest、HttpServletResponse,,它也提供了直接與Servlet相關(guān)對(duì)象訪問(wèn)的功能.

?

總結(jié):不難看出,兩者之間還是存在很多共同功能,那么我們還是根據(jù)自己的需求進(jìn)行選擇,能用ActionContext對(duì)象滿足就盡量使用ActionContext,避免讓我們直接去訪問(wèn)Servlet對(duì)象。另外,不要在Action還沒(méi)實(shí)例化的時(shí)候去通ActionContext調(diào)用方法,因?yàn)锳ction實(shí)例在ActionContext實(shí)例之前創(chuàng)建,ActionContext中一些值還沒(méi)有設(shè)置,會(huì)返回null。

?

4. application實(shí)例? (統(tǒng)計(jì)在線人數(shù) )

4.1 登錄程序中 LoginAction.java

//統(tǒng)計(jì)在線人數(shù)Map application = ActionContext.getContext().getApplication();Integer count = (Integer) application.get("count");if(null == count){count=1;}else{count++;}application.put("count", count);

?

?4.2 注銷(xiāo)程序中 ExitAciton.java

Map application = ActionContext.getContext().getApplication();Integer count = (Integer) application.get("count");count--;application.put("count", count);

?

轉(zhuǎn)載于:https://www.cnblogs.com/pxjgood/p/3991945.html

總結(jié)

以上是生活随笔為你收集整理的暑期项目经验(九) -- request session application的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。