1.环境搭建
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
开启注解扫描
<context:component-scan base-package="com.wyc"/>
视图解析器-
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
开启注解 springmvc注解支持
<mvc:annotation-driven></mvc:annotation-driven>
<web-app>
<display-name>Archetype Created Web Application</display-name>
-前端控制器
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
配置过滤器--
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
2.注解的使用
表名为控制类
@Controller
@RequestMapping(path = "/user") value也是path别名
public class HelloController {
@RequestMapping(path = "/hello",method = {RequestMethod.POST},params = {"username"},headers = {"User-Agent"})
public String sayHello(){
System.out.println("hello mvc");
return "sucess1";
}}
1.RequestMapping
1.加载类上表名为 一级 url目录 表在方法上表名为二级目录 必须以 user/hello 才能执行sayHello方法
public enum RequestMethod { 称为枚举类 类名.名字 取出方法
GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE}
2.属性
1.method 值是一个枚举类 必须以什么样的方法请求 ,可以有多个
2. params 请求url的参数必须含有的属性 ,或者 "username=wyc" 请求的参数属性必须等于wyc
3.headers 请求头中必须含有的 键
1.application/x-www-form-urlencoded,(jquery,get,post 默认的格式)
这种情况的数据 @RequestParam 、@ModelAttribute可以处理,@RequestBody 也可以处理。
2.multipart/form-data,
@RequestBody不能处理这种格式的数据。(form表单里面有文件上传时,必须要指定enctype属性值 为multipart/form-data ,意思是以二进制流的形式传输文件。)
3.application/json、application/xml
等格式的数据,必须使用 @RequestBody 来处理。