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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从servlet中获取spring的WebApplicationContext

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从servlet中获取spring的WebApplicationContext 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需要做一個參數初始化類,當web應用被加載時從數據庫里取出相關的參數設置

,并把這些參數放置到application里,jsp頁面可以從中取出。

1.在web.xml中配置:

<servlet>
????????<servlet-name>Dispatcher</servlet-name>
????????<servlet-

class>org.springframework.web.servlet.DispatcherServlet</servlet-

class>
????????<init-param>
????????????<param-name>contextConfigLocation</param-name>
????????????<param-value>/WEB-INF/Dispatcher-

servlet.xml,/WEB-INF/applicationContext.xml</param-value>
????????</init-param>
????????<load-on-startup>1</load-on-startup>
????</servlet>

????<servlet>
????????<servlet-name>context</servlet-name>
????????<servlet-

class>org.springframework.web.context.ContextLoaderServlet</servlet-

class>
????????<load-on-startup>2</load-on-startup>
????</servlet>

????<servlet>
????????<servlet-name>InitialServlet</servlet-name>
????????<servlet-

class>com.anylinks.billreturn.Web.InitialServlet</servlet-class>
????????<load-on-startup>3</load-on-startup>
????</servlet>


2.servlet代碼

package?com.anylinks.billreturn.Web;

import?java.util.Collection;
import?java.util.Iterator;

import?javax.servlet.ServletContext;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;

import?org.apache.commons.logging.Log;
import?org.apache.commons.logging.LogFactory;
import?org.springframework.web.context.WebApplicationContext;
import?org.springframework.web.context.support.WebApplicationContextUtils;

import?com.anylinks.billreturn.BO.SysParameter;
import?com.anylinks.billreturn.Service.ISysParameterService;

/*
?*?初始化Servlet,從數據庫中讀取參數表,保存在application里
?*/
public?class?InitialServlet?extends?HttpServlet?{

????private?Log?log?=?LogFactory.getLog(this.getClass());

????private?ISysParameterService?sysParameterService;

????/**
?????*?從數據庫中讀取參數表,保存在application里
?????*
?????*?@throwsServletException
?????*?????????????if?an?error?occure
?????*/
????public?void?init()?throws?ServletException?{

????????log.debug("start?to?intitail?");
????????//獲取WebApplicationContext
????????ServletContext?application?=?getServletContext();
????????WebApplicationContext?wac?=?WebApplicationContextUtils
????????????????.getWebApplicationContext

(application);

????????//調用sysParameterService取出所有的系統參數
????????sysParameterService?=?(ISysParameterService)?wac
????????????????.getBean("sysParameterService");

????????Collection?paras?=

sysParameterService.findAllParameters();
????????log.debug("sys?parameters?size:"?+?paras.size());

????????//把參數加到application里去
????????for?(Iterator?iter?=?paras.iterator();?iter.hasNext

();)?{
????????????SysParameter?para?=?(SysParameter)?iter.next

();

????????????application.setAttribute(para.getParaName(),

para.getParaValue());

????????????log.debug("initial?parameter:?key="?+

para.getParaName()
????????????????????+?",?value="?+

para.getParaValue());

????????}
????}

}




需要注意的地方:
1.僅僅配置一個DispatcherServlet是不夠的,我開始就是這樣,然后再servlet

里面怎么取都取不到WebApplicationContext 。配置上

org.springframework.web.context.ContextLoaderServlet之后才能取的到

WebApplicationContext 。
2.注意一下<load-on-startup>3</load-on-startup>,因為用到spring的

hibernateDaoSupport,所以必須在spring加載完之后再加載InitialServlet.

總結

以上是生活随笔為你收集整理的从servlet中获取spring的WebApplicationContext的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。