一、在web.xml中配置spring的核心监听器和spring mvc的前端控制器
1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
5 version="4.0">
6 <!--spring 的核心监听器作用:在web容器(tomcat)启动的时候,创建spring的工厂类对象,把该对象绑定到web容器的上下文(环境)
7 中。
8 之前我们使用spring 框架,第一件事都是创建工厂类对象:
9 ApplicationContext context = new ClassPathXmlApplciationContext("applicationContext.xml");
10 我们现在使用的是web项目,需不需要创建工厂类对象了?需要创建。
11 什么时候创建工厂类对象。工厂类对象只需要创建一个就够了,在项目启动的时候创建比较合适。
12 -->
13 <listener>
14 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
15 </listener>
16 <!---
17 手动指定spring 的主配置文件的位置和名称,如果不指定该参数,则spring会默认从WEB-INF/applicationContext.xml
18 我们之前习惯把spring 的主配置文件放到src下面,所以一般会指定此项。
19 -->
20 <context-param>
21 <param-name>contextConfigLocation</param-name>
22 <param-value>classpath:applicationContext.xml</param-value>
23 </context-param>
24 <!--配置spring mvc的前端控制器
25 作用:拦截指定的请求,交给spring mvc框架进行处理
26 -->
27 <servlet>
28 <servlet-name>spring-mvc</servlet-name>
29 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
30 <!--指定spring mvc的主配置文件的位置和名称
31 如果不指定该参数,spring 会默认从WEB-INF/下加载 [servlet的name]-servlet.xml
32 针对这个例子,生成的配置文件名称就spring-mvc-servlet.xml
33 -->
34 <init-param>
35 <param-name>contextConfigLocation</param-name>
36 <param-value>classpath:spring-mvc.xml</param-value>
37 </init-param>
38 </servlet>
39 <servlet-mapping>
40 <servlet-name>spring-mvc</servlet-name>
41 <!--拦截所有.do结尾的请求,交给spring mvc 处理,如果要拦截所有请求 可以写/*-->
42 <url-pattern>*.do</url-pattern>
43 </servlet-mapping>
44 </web-app>
二、配置spring-mvc.xml的主配置文件
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://www.springframework.org/schema/beans
5 http://www.springframework.org/schema/beans/spring-beans.xsd">
6 <!---配置spring mvc 处理器映射器
7 作用: 指定怎么才能找到spring mvc 的控制器Controller
8 Controller是spring mvc 的控制器 ,相当与之前的servlet的代码。
9 之前处理请求都是在servlet中,spring mvc处理请求在控制器里。项目会有很多控制器,到底要找哪一个控制器 处理
10 请求是
11 RequestMappingHandlerMapping这种实现定了以了 通过控制器方法或者类上面的@RequestMapping来找到具体
12 的控制器的方法。
13 -->
14 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
15 </bean>
16 <!--配置spring mvc的处理器适配器
17 作用:定义什么特征的java的类才算是一个合格的控制器。在spring mvc底层有很多的是适配器实现。
18 RequestMappingHandlerAdapter 定义了如果一个类加了一个@Controller的注解,他就算是一个合格的控制
19 -->
20 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
21 </bean>
22 <!--配置spring mvc 默认的jsp的视图解析器
23 在spring mvc中是可以返回多种视图(相当于之前srvlet中的jsp界面)
24 好比默认的jsp ,还可以是json ,还可以是一些模板文件。还可以返回excel,word,pdf等。
25 -->
26 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
27 <!--配置返回视图的前缀
28 requestDispatch.forward('/WEB-INF/jsp/index.jsp');
29 requestDispatch.forward('/WEB-INF/jsp/user.jsp');
30 ...
31 requestDispatch.forward('/WEB-INF/jsp/xxx.jsp');
32 -->
33 <property name="prefix" value="/WEB-INF/jsp/"></property>
34 <!--配置返回视图的后缀-->
35 <property name="suffix" value=".jsp"></property>
36 </bean>
37 </beans>
三、spring mvc简化配置