<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0
    ActionContext 介紹
    Web 應(yīng)用程序開發(fā)中,除了將請求參數(shù)自動設(shè)置到 Action 的字段中,我們往往也需要在 Action 里直接獲取請求 (Request) 或會話( Session )的一些信息 , 甚至需要直接對 JavaServlet Http 的請求( HttpServletRequest )、響應(yīng) (HttpServletResponse) 操作。
    我們需要在 Action 中取得 request 請求參數(shù)“ username ”的值:
    ActionContext context = ActionContext.getContext();
    Map params = context.getParameters();
    String username = (String) params.get(“username”);
    ActionContext com.opensymphony.xwork.ActionContext )是 Action 執(zhí)行時的上下文,上下文可以看作是一個容器(其實我們這里的容器就是一個 Map 而已),它存放放的是 Action 在執(zhí)行時需要用到的對象
     
    一般情況,我們的 ActionContext 都是通過: ActionContext context = (ActionContext) actionContext.get(); 來獲取的。我們再來看看這里的 actionContext 對象的創(chuàng)建: static ThreadLocal actionContext = new ActionContextThreadLocal(); ActionContextThreadLocal 是實現(xiàn) ThreadLocal 的一個內(nèi)部類。 ThreadLocal 可以命名為“線程局部變量”,它為每一個使用該變量的線程都提供一個變量值的副本,使每一個線程都可以獨立地改變自己的副本,而不會和其它線程的副本沖突。這樣,我們 ActionContext 里的屬性只會在對應(yīng)的當(dāng)前請求線程中可見,從而保證它是線程安全的。
     
     
    下面我們看看怎么通過 ActionContext 取得我們的 HttpSession
    Map session = ActionContext.getContext().getSession()
     
    ServletActionContext
    ServletActionContext com.opensymphony.webwork. ServletActionContext ),這個類直接繼承了我們上面介紹的 ActionContext ,它提供了直接與 JavaServlet 相關(guān)對象訪問的功能,它可以取得的對象有:
    1、   javax.servlet.http.HttpServletRequest HTTPservlet 請求對象
    2、   javax.servlet.http.HttpServletResponse; HTTPservlet 相應(yīng)對象
    3、   javax.servlet.ServletContext Servlet 上下文信息
    4、   javax.servlet.ServletConfig Servlet 配置對象
    5、   javax.servlet.jsp.PageContext Http 頁面上下文
     
     
    下面我們看看幾個簡單的例子,讓我們了解如何從 ServletActionContext 里取得 JavaServlet 的相關(guān)對象:
    1、   取得 HttpServletRequest 對象:
    HttpServletRequest request = ServletActionContext. getRequest();
    2、   取得 HttpSession 對象:
    HttpSession session = ServletActionContext. getRequest().getSession();
     
    ServletActionContext ActionContext 有著一些重復(fù)的功能,在我們的 Action 中,該如何去抉擇呢?我們遵循的原則是:如果 ActionContext 能夠?qū)崿F(xiàn)我們的功能,那最好就不要使用 ServletActionContext ,讓我們的 Action 盡量不要直接去訪問 JavaServlet 的相關(guān)對象。在使用 ActionContext 時有一點要注意:不要在 Action 的構(gòu)造函數(shù)里使用 ActionContext.getContext() ,因為這個時候 ActionContext 里的一些值也許沒有設(shè)置,這時通過 ActionContext 取得的值也許是 null
    posted on 2006-12-13 19:44 周銳 閱讀(664) 評論(0)  編輯  收藏 所屬分類: Webwork
    主站蜘蛛池模板: 久久亚洲AV成人无码| 久久亚洲免费视频| 亚洲综合无码AV一区二区| 国产AV无码专区亚洲AV漫画 | 男人的天堂亚洲一区二区三区 | 久久久亚洲精品国产| 亚洲乱码中文字幕小综合| 伊人久久五月丁香综合中文亚洲| 亚洲爆乳成av人在线视菜奈实| 免费观看四虎精品成人| 国产免费拔擦拔擦8X高清在线人| 麻豆高清免费国产一区| 国产成人无码a区在线观看视频免费| 亚洲一区二区三区免费| 婷婷久久久亚洲欧洲日产国码AV| 亚洲高清有码中文字| 九九99热免费最新版| 中文字幕av无码无卡免费| 亚洲高清最新av网站| 久久亚洲AV成人无码电影| 亚洲av最新在线观看网址| 最近国语视频在线观看免费播放| 在线观看H网址免费入口| 免费中文字幕在线| 亚洲宅男永久在线| 国产亚洲精品欧洲在线观看| 嫩草在线视频www免费观看| 午夜神器成在线人成在线人免费 | 日本成人在线免费观看| 国精无码欧精品亚洲一区| 亚洲欧美日韩自偷自拍| a毛片免费播放全部完整| 夜夜嘿视频免费看| 亚洲AV无码一区东京热久久| 亚洲国产精品成人AV在线 | 日韩精品无码免费专区午夜不卡| 大地资源免费更新在线播放| 亚洲日韩精品一区二区三区无码| 中国亚洲呦女专区| 久久久久国产精品免费网站| 国产成人高清精品免费鸭子|