加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

一起学SpringMVC之Request方式

发布时间:2020-12-15 01:17:17 所属栏目:大数据 来源:网络整理
导读:本文主要以一些简单的小例子,简述在SpringMVC开发过程中,经常用到的Request方面的内容,仅供学习分享使用,如有不足之处,还请指正。 概述 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。如果要支持其他方式进行访问,则必

本文主要以一些简单的小例子,简述在SpringMVC开发过程中,经常用到的Request方面的内容,仅供学习分享使用,如有不足之处,还请指正。

概述

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。如果要支持其他方式进行访问,则必须在表单中增加Hidden元素,然后再SpringMVC中过滤器进行拦截,再重新封装请求方式。

Request常见访问方式

  1. GET - 从指定的资源请求数据。
  2. POST - 向指定的资源提交要被处理的数据

GET方式

访问的特点:

  1. GET 请求可被缓存
  2. GET 请求保留在浏览器历史记录中
  3. GET 请求可被收藏为书签
  4. GET 请求不应在处理敏感数据时使用
  5. GET 请求有长度限制
  6. GET 请求只应当用于取回数据

SpringMVC中GET访问示例

如下所示:

 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     } 

前端可以通过请求的URL访问,也可以表单(method=get)的方式访问,如下所示:

1     <form name="form1" action="testGet" method="get" >
2         span>GET方式提交</><br />
3         input ="uname" type="text" 4         ="submit" value="提交" 5     form>

POST方式

访问特点

  1. POST 请求不会被缓存
  2. POST 请求不会保留在浏览器历史记录中
  3. POST 不能被收藏为书签
  4. POST 请求对数据长度没有要求

SpringMVC中POST方式示例

如下:

     * POST请求方式
 5     @RequestMapping(value="testPost",1)">RequestMethod.POST)
 ModelAndView testPost(String uname){
 7         String msg="POST方式访问,uname="+13     } 

前端访问代码

POST方式通常采用form的方式,如下所示:

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;
备注

快乐很简单,就是春天的鲜花,夏天的绿荫,秋天的野果,冬天的漫天飞雪。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读