• spring在WEB中的应用。


    1:创建IOC容器。在WEB应用程序启动的时候就创建。利用到监听器。

    ServletContextListener类的contextInitialized方法中

     1 package com.struts2.listeners;
     2 
     3 import javax.servlet.ServletContext;
     4 import javax.servlet.ServletContextEvent;
     5 import javax.servlet.ServletContextListener;
     6 
     7 import org.springframework.context.ApplicationContext;
     8 import org.springframework.context.support.ClassPathXmlApplicationContext;
     9 
    10 public class SpringServletContextListener implements ServletContextListener{
    11 
    12     public void contextDestroyed(ServletContextEvent arg0) {
    13         // TODO Auto-generated method stub
    14         
    15     }
    16 
    17     public void contextInitialized(ServletContextEvent arg0) {
    18         //1:applicationContext.xml在web.xml中进行创建。然后利用ServletContext获取到。
    19         ServletContext sc=arg0.getServletContext();
    20         String config=sc.getInitParameter("configLocation");
    21         //创建IOC容器
    22         ApplicationContext act=new ClassPathXmlApplicationContext(config);
    23         //把创建的IOC容器放到ServletContext(即application域)中
    24         sc.setAttribute("ApplicationContext", act);
    25     }
    26 
    27 }

    在web.xml中创建监听器和applicationContext.xml

    <context-param>
          <param-name>configLocation</param-name>
          <param-value>applicationContext.xml</param-value>
      </context-param>
      
      <listener>
        <listener-class>com.struts2.listeners.SpringServletContextListener</listener-class>
      </listener>

    然后创建一个实体:Person

    package com.struts2.entyties;
    
    public class Person {
        
        private String username;
        
        public void setUsername(String username) {
            this.username = username;
        }
        
        public void hello(){
            System.out.println("My name is " + username);
        }
        
    }

    然后创建bean

        <bean id="person" class="com.struts2.entyties.Person">
                <property name="username" value="陆伟"></property>
            </bean>

    然后写个servlet去使用:

    package com.struts2.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.context.ApplicationContext;
    
    import com.struts2.entyties.Person;
    
    public class TestServlet extends HttpServlet{
        private static final long serialVersionUID = 1L;
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //1. 从 application 域对象中得到 IOC 容器的引用
            ServletContext sc=getServletContext();
            ApplicationContext act=(ApplicationContext) sc.getAttribute("ApplicationContext");
            
            //2. 从 IOC 容器中得到需要的 bean
            Person person = act.getBean(Person.class);
            person.hello();
        }
    
    }

    在web.xml中加载servlet

    <servlet>
        <description></description>
        <display-name>TestServlet</display-name>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>com.struts2.servlet.TestServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/TestServlet</url-pattern>
      </servlet-mapping>

    然后写个页面进行访问:

    <a href="TestServlet">TestServlet</a>
  • 相关阅读:
    两条线路,如何选
    Eczema
    Eczema
    healing psoriasis -151
    12/30/2019
    how sales area determined for returns vendor?
    [转]SAP LSMW 不能为勾选供应商采购组织视图'Returns Vendor’选项然后维护运达方做录屏...
    通过RFC获取其他SAP系统的数据
    goturkey
    Instant Client 配置
  • 原文地址:https://www.cnblogs.com/bulrush/p/8000934.html
Copyright © 2020-2023  润新知