• SpringMVC请求参数


    一、获取单个参数:

    @RequestParam(value = "",required = true,defaultValue = "")

      value = "":指定要获取的参数的key

      required = true:这个参数是否是必须的

      defaultValue = "":默认值,没带默认null

    1. @RequestParam():获取请求路径“?”后面参数的值

    @RequestMapping("/handle")
    public String handle(@RequestParam("name") String name) {
        return "" ;
    }

    2. @PathVariable():获取路径中key的值

    @RequestMapping("/handle/{name}")
    public String handle(@PathVariable("name") String name) {
        return "" ;
    }

    3. @RequestHeader():获取请求头中某个key的值

    @RequestMapping("/handle")
    public String handle(@RequestHeader("User-Agent") String userAgent) {
    return "" ;
    }

    4. @CookieValue():

    @RequestMapping("/handle")
    public String handle(@CookieValue("JESSIONID") String jid) {
        return "" ;
    }

    二、获取vo参数:级联属性也可以封装

    @RequestMapping("/handle")
    public String handle(Member member) {
        return "" ;
    }

    三、传入原生API:

    @RequestMapping("/handle")
    public String handle(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
        return "" ;
    }

      虽然方法上可以获取内置对象,但是考虑到其他地方也需要内置对象,可以通过RequestContextHolder获取:

    ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest() ;
    ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getResponse() ;

    四、请求乱码:

      GET请求:在Tomcat中修改server.xml配置文件,在8080端口处设置URIEncoding="UTF-8"

      POST请求:在第一次请求之前设置request.setCharacterEncoding("UTF-8"),SpringMVC提供了编码过滤器:CharacterEncodingFilter

    <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!-- encoding:解决POST请求乱码 -->
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <!-- :forceEncoding响应乱码 -->
    <init-param>
    <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>
  • 相关阅读:
    python之《set》
    python之 《zip,lambda, map》
    python之 socketserver模块的使用
    iOS FMDB小试了一下
    人生要自强不息-路遇瞎子感悟
    iOS Node Conflict svn冲突
    iOS 隐藏Status Bar
    iOS NSURLSession 封装下载类
    iOS NSFileManager
    iOS prototype Cells
  • 原文地址:https://www.cnblogs.com/luliang888/p/11074768.html
Copyright © 2020-2023  润新知