首页 > 技术文章 > springMvc(一)

jnxj 2018-03-20 23:34 原文

SpringMvc

1. 核心:DispatcherServlet

1.1作用:负责拦截请求并分派给相应的处理器处理

1.2配置DispatcherServlet(web.xml)

2.配置处理器映射器,适配器,视图解析器等

3.编写Handler类

2.1实现Controller接口,对应上面配置的第一种适配器

2.2实现HttpRequestHandler接口,对应上面配置的第二种适配器

4.注解开发

4.1 spring3.1之前的映射器和适配器的配置类

(1)映射器org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping

(2)适配器org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

4.2 spring3.1之后的映射器和适配器的配置类

(1)映射器org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

(2)适配器org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

(3)使用<mvc:annotation-driven></mvc:annotation-driven>可以替代上面两个

 

4.3 扫描Handler类,开启组件扫描,方便快捷,只要配置包名

4.4 编写Handler类

(1)      在类名上使用@Controller注解类

(2)      使用@RequestMapping()配置映射url

5.配置等相关文件

5.1pom.xml

  1 <properties>
  2         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  3         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  4 
  5         
  6 
  7         <!-- log4j日志包版本号 -->
  8         <slf4j.version>1.7.18</slf4j.version>
  9         <log4j.version>1.2.17</log4j.version>
 10 
 11     </properties>
 12     
 13     <dependencies>
 14     <!-- 添加fastjson -->
 15         <dependency>
 16             <groupId>com.alibaba</groupId>
 17             <artifactId>fastjson</artifactId>
 18             <version>1.1.41</version>
 19         </dependency>
 20 
 21         <!-- 添加日志相关jar包 -->
 22         <dependency>
 23             <groupId>log4j</groupId>
 24             <artifactId>log4j</artifactId>
 25             <version>${log4j.version}</version>
 26         </dependency>
 27         <dependency>
 28             <groupId>org.slf4j</groupId>
 29             <artifactId>slf4j-api</artifactId>
 30             <version>${slf4j.version}</version>
 31         </dependency>
 32         <dependency>
 33             <groupId>org.slf4j</groupId>
 34             <artifactId>slf4j-log4j12</artifactId>
 35             <version>${slf4j.version}</version>
 36         </dependency>
 37 
 38         <!-- log end -->
 39         <!-- 映入JSON -->
 40         <dependency>
 41             <groupId>org.codehaus.jackson</groupId>
 42             <artifactId>jackson-mapper-asl</artifactId>
 43             <version>1.9.13</version>
 44         </dependency>
 45         <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
 46         <dependency>
 47             <groupId>com.fasterxml.jackson.core</groupId>
 48             <artifactId>jackson-core</artifactId>
 49             <version>2.8.0</version>
 50         </dependency>
 51         <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
 52         <dependency>
 53             <groupId>com.fasterxml.jackson.core</groupId>
 54             <artifactId>jackson-databind</artifactId>
 55             <version>2.8.0</version>
 56         </dependency>
 57 
 58         <dependency>
 59             <groupId>commons-fileupload</groupId>
 60             <artifactId>commons-fileupload</artifactId>
 61             <version>1.3.1</version>
 62         </dependency>
 63 
 64         <dependency>
 65             <groupId>commons-io</groupId>
 66             <artifactId>commons-io</artifactId>
 67             <version>2.4</version>
 68         </dependency>
 69 
 70         <dependency>
 71             <groupId>commons-codec</groupId>
 72             <artifactId>commons-codec</artifactId>
 73             <version>1.9</version>
 74         </dependency>
 75     
 76     <!-- 添加jstl依赖 -->
 77         <dependency>
 78             <groupId>jstl</groupId>
 79             <artifactId>jstl</artifactId>
 80             <version>1.2</version>
 81         </dependency>
 82         <dependency>
 83             <groupId>junit</groupId>
 84             <artifactId>junit</artifactId>
 85             <version>3.8.1</version>
 86             <scope>test</scope>
 87         </dependency>
 88         <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
 89         <dependency>
 90             <groupId>org.springframework</groupId>
 91             <artifactId>spring-webmvc</artifactId>
 92             <version>4.3.14.RELEASE</version>
 93         </dependency>
 94         <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
 95         <dependency>
 96             <groupId>javax.servlet</groupId>
 97             <artifactId>javax.servlet-api</artifactId>
 98             <version>3.1.0</version>
 99             <scope>provided</scope>
100         </dependency>
101 
102     </dependencies>
pom.xml

5.2log4j.properties

 1 # \u65E5\u5FD7\u6536\u96C6\u5668\u7684\u64CD\u4F5C
 2 log4j.rootLogger=DEBUG, stdout, file
 3 
 4 # \u5C06\u65E5\u5FD7\u4FE1\u606F\u5B9A\u5411\u5230\u63A7\u5236\u53F0
 5 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 6 log4j.appender.stdout.Target=System.out
 7 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 8 log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
 9 
10 # \u5C06\u65E5\u5FD7\u4FE1\u606F\u5B9A\u5411\u5230\u6587\u4EF6\u4E2D
11 log4j.appender.file=org.apache.log4j.RollingFileAppender
12 log4j.appender.file.File=D:/log/springmvc-01/log4j-application.log
13 log4j.appender.file.MaxFileSize=5MB
14 log4j.appender.file.MaxBackupIndex=10
15 log4j.appender.file.layout=org.apache.log4j.PatternLayout
16 log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j

5.3springmvc.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" xmlns:mvc="http://www.springframework.org/schema/mvc"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xsi:schemaLocation="
 6         http://www.springframework.org/schema/beans 
 7         http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/mvc 
 9         http://www.springframework.org/schema/mvc/spring-mvc.xsd    
10         http://www.springframework.org/schema/context 
11         http://www.springframework.org/schema/context/spring-context.xsd">
12         <bean id="userController" name="/home" class="com.jnxj.springmvc.controller.UserController"></bean>
13         <bean id="userController2" class="com.jnxj.springmvc.controller.UserController2"></bean>
14         <bean class="com.jnxj.springmvc.controller.UserController3"></bean>
15         <!-- 开启组件扫描,不用一个一个配置handler -->
16         <context:component-scan base-package="com.jnxj.springmvc.controller"></context:component-scan>
17         <!-- 处理器映射器  通过bean的name去处理url-->
18         <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
19            <!-- 另一种非注解处理器映射器 -->
20            <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
21                    <property name="mappings">
22                        <props>
23                            <prop key="/home1">userController</prop>
24                            <prop key="/home2">userController2</prop>
25                        </props>
26                    </property>
27            </bean>
28            
29            <!-- 注解的映射器 -->
30            <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
31         <!-- 注解适配器 -->
32         <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
33         
34         <!-- 使用下面这个可以代替上面两个注解映射器和适配器 
35             默认加载很多方法,比如json的视图解析器
36         -->
37        <!--  <mvc:annotation-driven></mvc:annotation-driven> -->
38         <!-- 处理器适配器 ,实现HandlerAdapter接口-->
39         <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
40         <!-- 另一种处理器适配器 ,实现HttpRequestHandler接口-->
41         <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
42        
43         <!-- 视图解释器 -->
44         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
45         </beans>
springmvc.xml

 

推荐阅读