環境上下文物件(WebContext)


為了讓開發人員隨時隨地取得並使用Request、Response、Session等Web容器對象,YMP框架在WebMVC模組中提供了一個名叫WebContext的Web環境上下文封裝類,簡單又實用,先了解提供的方法:

直接取得Web容器物件:

  • #取得ServletContext物件:

      WebContext.getServletContext();
  • #取得HttpServletRequest物件:

    #
      WebContext.getRequest();
  • 取得HttpServletResponse物件:

    #
      WebContext.getResponse();
  • 取得PageContext物件:

      WebContext.getPageContext();

#取得WebMVC容器物件:
  • 取得IRequestContext物件:
      WebContext.getRequestContext();
    ############################################################################ ####WebMVC請求上下文接口,主要用於分析請求路徑及儲存相關參數;###############取得WebContext物件實例:#########
      WebContext.getContext();
    ######

WebContext將Application、Session、Request等Web容器物件的屬性轉換成Map映射存儲,同時向Map的賦值也將自動同步到物件的Web容器物件中,起初的目的是為了能夠方便程式碼移植並脫離Web環境依賴進行開發測試(功能參考Struts2):

  • WebContext.getContext().getApplication();

  • WebContext.getContext().getSession();

  • WebContext.getContext().getAttribute(Type.Context.REQUEST);

#原本可以透過WebContext.getContext().getRequest方法直接取得的,但由於設計上的錯誤,方法名已被WebContext.getRequest()佔用,若變更方法名受影響的項目太多,所以只好委屈它了:D,後面會介紹更多的輔助方法來操作Request屬性,所以可以忽略它的存在!

  • WebContext.getContext().getAttributes();

  • WebContext.getContext().getLocale();

  • WebContext.getContext().getOwner();

  • #WebContext.getContext().getParameters();

#WebContext運算Application的輔助方法:

  • #boolean getApplicationAttributeToBoolean(String name);

  • int getApplicationAttributeToInt( String name);

  • long getApplicationAttributeToLong(String name);

  • String getApplicationAttributeToString(String name);

  • #<T> T getApplicationAttributeToObject(String name);

  • WebContext addApplicationAttribute(String name, Object value)

  • # #WebContext操作Session的輔助方法:

  • boolean getSessionAttributeToBoolean(String name);

  • int getSessionAttributeToInt(String name);

  • ##int getSessionAttributeToInt(String name);
  • long getSessionAttributeToLong(String name);
  • ##String getSessionAttributeToString(String name);
  • < ;T> T getSessionAttributeToObject(String name);

WebContext addSessionAttribute(String name, Object value)

  • ##WebContext作業Request的輔助方法:

  • boolean getRequestAttributeToBoolean(String name);

  • ##int getRequestAttributeToInt(String name);

  • int getRequestAttributeToInt(String name);
  • #long getRequestAttributeToLong(String name);

String getRequestAttributeToString(String name);############ (String name);############WebContext addRequestAttribute(String name, Object value)###############WebContext操作Parameter的輔助方法:## #############boolean getParameterToBoolean(String name);############int getParameterToInt(String name)############# long getParameterToLong(String name);############String getParameterToString(String name);###############WebContext操作Attribute的輔助方法:## #
  • T getAttribute(String name);

  • WebContext addAttribute(String name, Object value);

##WebContext取得IUploadFileWrapper上傳檔案包裝器:

    ##IUploadFileWrapper getUploadFile(String name);
  • IUploadFileWrapper[] getUploadFiles(String name);
#