在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。如果要支持其他方式进行访问,则必须在表单中增加Hidden元素,然后再SpringMVC中过滤器进行拦截,再重新封装请求方式。
1 /**
2 * GET请求方式
3 * @return
4 */
5 @RequestMapping(value="testGet",method=RequestMethod.GET)
6 public ModelAndView testGet(String uname){
7 String msg="GET方式访问,uname="+uname;
8 System.out.println(msg);
9 ModelAndView mav=new ModelAndView("HelloWorld");
10 mav.addObject("msg",msg);
11 return mav;
12
13 }
1 <form name="form1" action="testGet" method="get" >
2 span>GET方式提交</><br />
3 input ="uname" type="text" 4 ="submit" value="提交" 5 form>
* POST请求方式
5 @RequestMapping(value="testPost",1)">RequestMethod.POST)
ModelAndView testPost(String uname){
7 String msg="POST方式访问,uname="+13 }
1 ="form2"="testPost"="post" >POST方式提交PUT方式访问及步骤
PUT方式是把消息本体中的消息发送到一个URL,跟POST类似,但不常用。
SpringMVC中PUT方式步骤如下:
1. 设置路径的访问方式为PUT
* PUT请求方式
* 原始请求,默认只支持GET,POST请求方式,如有要支持PUT和DELETE,
4 * 需要在Form表单(表单的请求方式必须为POST)中,增加一个hidden标签,name="_method" value="访问方式"
5 6 7 @RequestMapping(value="testPut",1)">RequestMethod.PUT)
8 ModelAndView testPut(String uname){
9 String msg="PUT方式访问,uname="+10 11 ModelAndView mav=12 mav.addObject("msg"13 14
15 }
2. 在web.xml中设置过滤器
<!-- 设置过滤器 -->
2 filter3 filter-name>filter4 filter-class>org.springframework.web.filter.HiddenHttpMethodFilter5 6 filter-mapping7 8 url-pattern>/*9 >
3. form表单中增加hidden访问控件
如下所示:method必须为post,hidden的name=_method,value=PUT,属于固定写法。
="form3"="testPut">PUT方式提交type="hidden" name="_method"="PUT"5 6 DELETE方式访问及步骤
DELETE主要用于删除指定资源。
SpringMVC支持Delete方式访问的步骤
1. 设置路径访问方式为DELETE
如下所示:
* DELETE请求方式
5 @RequestMapping(value="testDelete",1)">RequestMethod.DELETE)
ModelAndView testDelete(String uname){
7 String msg="DELETE方式访问,uname="+13 }
2. 在配置好过滤器的前提下,前端访问
方式如下:
="form4"="testDelete">DELETE方式提交="DELETE"请求参数
请求参数可以采用的restful的方式进行提取,也可以采用参数的方式进行获取。如果前端请求参数和函数参数名一致,则可以自动匹配。
如果不一致,则可以使用@RequestParam("uname")来声明
如下所示:
/**
* 测试请求参数,如果参数名称和前端页面参数不一致,则可以使用@RequestParam("uname")来声明
* @param uname
* @return
*/
6 @RequestMapping(value="testParam",method=RequestMethod.POST)
7 public ModelAndView testParam(@RequestParam("uname") String name){
String msg="POST方式访问,请求参数,name="+name;
9 ModelAndView mav=new ModelAndView("HelloWorld");
11 mav.addObject("msg",1)">12 return mav;
13
14 }
前端访问方式
="form6"="testParam">测试Param/><="uage">
设置是否必须访问和默认值
* 请求参数,设置参数是否必填
@param name
age
7 @RequestMapping(value="testParam2",1)">public ModelAndView testParam2(@RequestParam("uname") String name,@RequestParam(value="uage",required=false,defaultValue="11")int age){
9 String msg="POST方式访问,请求参数,name="+name;
10 String msg1="POST方式访问,请求参数,age="+age;
System.out.println(msg1);
13 ModelAndView mav=14 mav.addObject("msg",msg+"rn"+msg1);
15 16
17 }
获取请求Header信息
@RequestHeader注解可以轻松获取请求的Header信息,如下所示:获取Accept-Language,并赋给参数header
* 获取请求头部信息,如果多个value,用数组表示
header
5 6 @RequestMapping(value="testHeader",1)"> 7 public ModelAndView testHeader(@RequestHeader("Accept-Language") String header){
8 String msg="请求头部信息,header="+header;
10 ModelAndView mav=11 mav.addObject("msg"12 14 }
获取请求cookie信息
如下所示:获取cookie中的JESSIONID并赋给参数
* 获取cookie中的值,服务端在客户端第一次请求时,会分配一个session给客户端,其中包含sessionid
sessionId
6 @RequestMapping(value="testCookie",1)">public ModelAndView testCookie(@CookieValue("JSESSIONID") String sessionId){
8 String msg="请求cookie信息,JSESSIONID="+sessionId;
备注
快乐很简单,就是春天的鲜花,夏天的绿荫,秋天的野果,冬天的漫天飞雪。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!