参_spring mvc request">
赞
踩
直接给请求地址的处理方法参数列表写上一个和请求参数名相同的变量,这个变量就来接受请求参数的值(如果url中没有带上这个参数,那么就为默认值null)
@RequestMapping("/hello01")
public String handle01(String username){
System.out.print(username)
}
发送请求
<a href="hello01?username=haha&pwd=123">参数请求链接</a>
1.value : 需要从url中获取的value相应得key
2.required : 是否必须。默认为 true, 表示请求参数中必须包含对应的参数,若不存在,将抛出异常;若为false时,不带参数,得到的值为null
3.defaultValue : 默认值,当没有传递参数时使用该值
@RequestParam(value=“user” )String username 等价于servlet中得 username=request.getParameter(“user”)
通过占位符的方式获取传递的值,只允许传递一个参数,将url中通过占位符xxx获取到的数据赋值给yyy
@RequestMapping("/hello01/{xxx}")
public String handle02(@PathVariable(“xxx”) 引用数据类型如Interger yyy){…}
@RequestHeader(“key”)用于获取请求的头部信息
@RequestHeader(“User-Agent”) String userAgent 等同于servlet中的 userAgent = request.getHeader(“User-Agent”)
RequestHeader同样具有value, required, defaultValue三个属性,且用法相同
对于servlet获取cookie , 能够获取所有的cookie
Cookie [] cookies = request.getCookies() ;
for( Cookie c : cookies){
if(c.getName.equals("JSESSIONID"))
String cv = c.getValue;
}
CookieValue同样具有value, required, defaultValue三个属性,且用法相同
Spring MVC 和 会按请求参数名和 POJO 属性名进行自动匹配, , 自动为该对象填充属性值。
支持级联属性(属性名.属性名),在html标签中的name属性体现。如:dept.deptId、dept.address.tel 等
在控制器中
@RequestMapping("/testPOJO")
public String testPOJO(User user){
return "success";
}
SpringMVC能够根据传入的类,获取该类的属性,并根据这些属性名调用request.getParameter()来赋值给该类。
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"/>
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>
注意:字符编码filter要在其他filter之前
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。