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> 默认 </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