参_spring mvc request">
当前位置:   article > 正文

SpringMVC--Request_spring mvc request

spring mvc request

1.传递的参数获取

1.1.默认方式获取请求参数:

直接给请求地址的处理方法参数列表写上一个和请求参数名相同的变量,这个变量就来接受请求参数的值(如果url中没有带上这个参数,那么就为默认值null)
  • 1
@RequestMapping("/hello01")
public String handle01(String username){	
   System.out.print(username)
}


发送请求
<a href="hello01?username=haha&pwd=123">参数请求链接</a>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

1.2.RequestParam

在这里插入图片描述

1.2.1RequestParam包含三种属性

1.value : 需要从url中获取的value相应得key
2.required : 是否必须。默认为 true, 表示请求参数中必须包含对应的参数,若不存在,将抛出异常;若为false时,不带参数,得到的值为null
3.defaultValue : 默认值,当没有传递参数时使用该值

@RequestParam(value=“user” )String username 等价于servlet中得 username=request.getParameter(“user”)

1.3.PathVariable

通过占位符的方式获取传递的值,只允许传递一个参数,将url中通过占位符xxx获取到的数据赋值给yyy
@RequestMapping("/hello01/{xxx}")
public String handle02(@PathVariable(“xxx”) 引用数据类型如Interger yyy){…}

2.获取请求头部信息

@RequestHeader(“key”)用于获取请求的头部信息
@RequestHeader(“User-Agent”) String userAgent 等同于servlet中的 userAgent = request.getHeader(“User-Agent”)

RequestHeader同样具有value, required, defaultValue三个属性,且用法相同

3.获取COOKIE信息

3.1原生servlet

对于servlet获取cookie , 能够获取所有的cookie

Cookie [] cookies = request.getCookies() ;
for( Cookie c : cookies){
	if(c.getName.equals("JSESSIONID"))
		String cv = c.getValue;
}
  • 1
  • 2
  • 3
  • 4
  • 5

3.2CookieValue

在这里插入图片描述

CookieValue同样具有value, required, defaultValue三个属性,且用法相同

4.POJO处理多参数(表单)信息

Spring MVC 和 会按请求参数名和 POJO 属性名进行自动匹配, , 自动为该对象填充属性值。
支持级联属性(属性名.属性名),在html标签中的name属性体现。如:dept.deptId、dept.address.tel 等
在这里插入图片描述

在控制器中

@RequestMapping("/testPOJO")
public String testPOJO(User user){	
	return "success";
}
  • 1
  • 2
  • 3
  • 4

SpringMVC能够根据传入的类,获取该类的属性,并根据这些属性名调用request.getParameter()来赋值给该类。

5.请求中文乱码

GET请求:该servers项目中的server.xml文件

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

<!--修改为-->
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

  • 1
  • 2
  • 3
  • 4
  • 5

POST请求
1.在第一次获取请求之前设置 request.serCharacterEncoding(“UTF-8”)
2.使用SpringMVC提供的CharacterEncodingFilter来进行设置(也可自己实现filter来进行request.serCharacterEncoding(“UTF-8”))

<!--在web.xml文件中-->


<filter>
	<filter-name>CharacterEncodingFilter</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	<init-param>
		<!--encoding指定解决POST请求乱码-->
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
	 <init-param>
	 	<!--forceEncoding解决响应乱码-->
  		<param-name>forceEncoding</param-name>
 		 <param-value>true</param-value>
 	</init-param>
</filter>
<filter-mapping>
	<filter-name>CharacterEncodingFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

注意:字符编码filter要在其他filter之前

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/310049
推荐阅读
相关标签
  

闽ICP备14008679号