[springMVC]03.20复习springMVC支持路径中占位符与获取请求参数

springMVC

SpringMVC支持路径中的占位符(重点)

原始方式

/updateUser?id=1

rest方式

/updateUser/1

SpringMVC路径中的占位符常用于RESTful风格中,当请求路径中将某些数据通过路径的方式传输到服务器中,就可以在相应的@RequestMapping注解的value属性中通过占位符{xxx}表示传输的数据,再通过@PathVariable注解,将占位符所表示的数据赋值给控制器方法的形参

 <a th:href="@{/hello/testRest/1/2}">测试rest风格传递参数</a>
@RequestMapping("/testRest/{page}/{limit}")
    public String testRest(@PathVariable long page , @PathVariable long limit){
        System.out.println("page:" + page + "==limit:" + limit);
        return "success";
    }

SpringMVC获取请求参数

1 通过servletAPI获取

  1. 将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象
    image
    image

2 通过controller方法形参获取

  1. 通过控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求的时候,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参
    image
    image

3 通过entity获取请求参数

  1. 获取的方法就和在GuLi学院项目一样,先创建和数据库对应的实体类,然后创建前端的表和后端的实体类对应,之后在返回值的地方return R.ok()...等等里面的逻辑就执行完成了.

解决获取请求参数的乱码问题

解决获取请求参数的乱码问题,可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter,但是必须在web.xml中配置

<!--配置解决乱码的SpringMVC编码过滤器-->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

注意:需要配置到配置HiddenHttpMethodFilter过滤器的前面才能使用

posted @ 2022-03-20 19:46  1_f  阅读(59)  评论(0)    收藏  举报