日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

从servlet中获取spring的WebApplicationContext

發布時間:2023/12/10 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从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的全部內容,希望文章能夠幫你解決所遇到的問題。

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