web怎样启动spring容器

yaoyao0 2016-12-16

web怎样启动spring容器

web容器怎样跟spring结合起来使用,主要就是根据web.xml文件中配置了spring的信息。

web.xml主要包含这些配置:

1. 上下文

2. index页面和errror页面

3. 定义servlet,里面引用的是DispatcherServlet

4. 定义contextConfigLocation,这个可以在Servlet中定义,也可以在外部定义

5. 定义监听器  ContextLoaderListener,主要是为了监听contextConfigLocation,加载spring的xml文件

6.各种过滤器

web.xml中的配置

1.2. 上下文、定义index页面和error页面

<!-- 上下文名字 -->
    <display-name>appsdollar_cms</display-name>

    <!-- index页面 -->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <!-- 找不到页面后call的url -->
    <error-page>
        <error-code>404</error-code>
        <location>/pageNotFound</location>
    </error-page>
 

3. 定义 DispatcherServlet

<!-- Spring MVC配置 -->
<!-- ====================================== -->
<!-- 定义 dispatcherServlet,spring拦截分发请求就靠它-->
<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-servlet.xml</param-value>&nbsp; 默认
    </init-param>
    -->
    <load-on-startup>1</load-on-startup>
</servlet>

<!--定义spring要拦截哪些请求-->
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

4. 定义contextConfigLocation,这里配置了spring的配置文件

<!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:config/applicationContext.xml</param-value>
</context-param>

  

5. 定义监听器ContextLoaderListener

<!-- Spring配置 -->
<!-- ====================================== -->
<listener>
   <listenerclass>
     org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>

6. 定义过滤器

<!-- 浏览器不支持put,delete等method,由该filter将/blog?_method=delete转换为标准的http delete方法 -->
    <filter>
        <filter-name>restfulFilter</filter-name>
        <filter-class>com.cherrypicks.appsdollar.filter.RESTfulFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>restfulFilter</filter-name>
        <servlet-name>spring-mvc</servlet-name>
    </filter-mapping>

定义spring-servlet.xml

spring-servlet这个名字是因为上面web.xml中<servlet-name>标签配的值为spring(<servlet-name>spring</servlet-name>),再加上“-servlet”后缀而形成的spring-servlet.xml文件名,如果改为springMVC,对应的文件名则为springMVC-servlet.xml。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"     
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"     
        xmlns:context="http://www.springframework.org/schema/context"     
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   
       http://www.springframework.org/schema/context <a href="http://www.springframework.org/schema/context/spring-context-3.0.xsd">http://www.springframework.org/schema/context/spring-context-3.0.xsd</a>">

    <!-- 启用spring mvc 注解 -->
    <context:annotation-config />

    <!-- 设置使用注解的类所在的jar包 -->
    <context:component-scan base-package="controller"></context:component-scan>

    <!-- 完成请求和注解POJO的映射 -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  
    <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp" />
</beans>

参考:

https://www.douban.com/note/330371577/?type=like

 http://www.cnblogs.com/superjt/p/3309255.html

相关推荐