当前位置:天才代写 > tutorial > JAVA 教程 > JavaWeb应用中获取Spring的ApplicationContext

JavaWeb应用中获取Spring的ApplicationContext

2017-11-10 08:00 星期五 所属: JAVA 教程 浏览:323

副标题#e#

ApplicationContext是Spring的容器情况,通过ApplicationContext工具可以会见所有设置的bean。

在Web开拓开拓中,经常需要从JSP可能Servlet可能Action中获取ApplicationContext工具,这时候,就无法利用new要害字通过查找设置文件来实例化ApplicationContext这个工具了。Spring通过WebApplicationContextUtils可以利便实现您的需求。下面看个例子:

一、Spring2.5+Struts2情况下

1、设置web.xml,通过这个设置来获取的。

<?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
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           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>


#p#副标题#e#

二、Spring+JSP的情况

在此情况下web.xml设置会有些变革:

<?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
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           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>

获取的方法和上述完全一样。

本文配套源码

 

    关键字:

天才代写-代写联系方式