ApplicationContext是Spring的容器环境,通过ApplicationContext对象可以访问所有配置的bean。
在Web开发开发中,常常需要从JSP或者Servlet或者Action中获取ApplicationContext对象,这时候,就无法使用new关键字通过查找配置文件来实例化ApplicationContext这个对象了。Spring通过WebApplicationContextUtils可以方便实现您的需求。下面看个例子:
<? xml version ="1.0" encoding ="UTF-8" ?> < web-app xmlns ="http://java.sun.com/xml/ns/javaee" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
[url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version ="2.5" > < context-param > < param-name >contextConfigLocation
</ param-name > < param-value >/WEB-INF/applicationContext.xml
</ param-value > </ context-param > < filter > < filter-name >struts2
</ filter-name > < filter-class >org.apache.struts2.dispatcher.FilterDispatcher
</ filter-class > </ filter > < filter-mapping > < filter-name >struts2
</ filter-name > < url-pattern >/*
</ url-pattern > </ filter-mapping > < listener > < listener-class >org.springframework.web.context.ContextLoaderListener
</ listener-class > </ listener > < servlet > < servlet-name >dispatcher
</ servlet-name > < servlet-class >org.springframework.web.servlet.DispatcherServlet
</ servlet-class > < load-on-startup >1
</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >dispatcher
</ servlet-name > < url-pattern >*.form
</ url-pattern > </ servlet-mapping > </ web-app > 2、在JSP、Servlet、Action中获取ApplicationContext
< %@ page
import ="lavasoft.service.TestService" %
> < %@ page
import ="org.springframework.context.ApplicationContext" %
> < %@ page
import ="org.springframework.web.context.support.WebApplicationContextUtils" %
> < %@ page
contentType ="text/html;charset=UTF-8" language ="java" %
> < html > < head > < title >Simple jsp page
</title> </head> < body > <%
// ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext()); ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(session.getServletContext()); TestService service = (TestService) ctx.getBean("testService");
String s = service.test();
out.print(s);
%>
</body> </html> <? xml version ="1.0" encoding ="UTF-8" ?> < web-app xmlns ="http://java.sun.com/xml/ns/javaee" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
[url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]"
version ="2.5" > < context-param > < param-name >contextConfigLocation
</ param-name > < param-value >/WEB-INF/applicationContext.xml
</ param-value > </ context-param > < listener > < listener-class >org.springframework.web.context.ContextLoaderListener
</ listener-class > </ listener > < servlet > < servlet-name >dispatcher
</ servlet-name > < servlet-class >org.springframework.web.servlet.DispatcherServlet
</ servlet-class > < load-on-startup >1
</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >dispatcher
</ servlet-name > < url-pattern >*.form
</ url-pattern > </ servlet-mapping > </ web-app > 本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/126570,如需转载请自行联系原作者