请求参数处理:
@RequestMapping——
@RequestMapping映射url将请求处理映射到方法中。
@RequestMapping加载类上面,作用:1.模块化。2.解决映射方法重复问题。
@RequestMapping属性中method = RequestMethod.GET/POST映射方式。
@PostMapping ===>post请求
@GetMapping ===>get请求
@PutMapping
@DeleteMapping
@RequestMapping属性——
params:
-
必须有什么值 params = {“name”}
-
必须没有什么值 params = {“!name”}
-
必须等于什么值 params = {“name=dt”}
-
必须不等于什么值 params = {“name!=dt”}
consumes:
-
form表达默认内容类型 consumes = {“application/x-www-form-urlencoded”}
-
orm表单文件流内容类型 consumes = {“multipart/form-data”}
-
ajax,json类型 consumes = {“application/json”}
用apipost软件测试的时候要在方法里面写上参数,否则报错(不知为啥)
rest形式获取地址栏参数。/xxx,xxx为参数。方法参数为对象是可以省略@PathVariable——
@RequestMapping(value = "/mapping04/{id}") //使用{}占位符
解决编码问题:
在web.xml里面配置spring对于编码问题的过滤器——
<!-- 配置spring过滤器,解决编码问题-->
<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>
<init-param>
<!-- 同时开启请求和响应的编码设置-->
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- 配置拦截哪些请求-->
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<!-- 拦截规则-->
<!-- 只拦截springmvc的请求-->
<servlet-name>springmvc</servlet-name>
</filter-mapping>
对于jsp的表单无法使用put和delete请求:
在web.xml里面进行spring请求过滤器——
<!-- 处理html不支持put和delete请求,将post转换put、delete等请求的过滤器-->
<filter>
<filter-name>HiddenHttpMethod</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethod</filter-name>
<servlet-name>springmvc</servlet-name>
</filter-mapping>
同时在表单中添加标签
<!--(这里以put请求为例,根据实际情况修改name值。)-->
<input type="hidden" value="put" name="_method">
将请求方式修改为post——原理:当spring过滤器接收到post请求会判断_method的值是put还是delete等,然后转为大写再进行映射,然后匹配对应的方法执行。
请求参数名与方法参数一致的时候会自动转换,如果使用对象则请求参数名和对象的属性名保持一致会自动转换,因此方法参数可以用对象来接收即可。
访问静态资源:
在spring配置文件中进行以下配置——
<!-- 使用spring,一定要配置的配置-->
<mvc:annotation-driven/>
<!-- 访问静态资源方法一-->
<mvc:resources mapping="resources/**" location="/resources/"/>
<!-- 访问静态资源方法二,当spring无法匹配处理器时将请求抛给服务器处理-->
<!-- <mvc:default-servlet-handler/>-->
并且要在web文件夹下创建resources文件夹,静态资源放在该文件夹下