Spring——获得请求参数

简介

  服务器获取请求参数,有时还需数据封装。

  SpringMVC可以接受如下类型参数:

    基本类型参数

    POJO类型参数  

    数组类型参数

    集合类型参数

  

获得基本类型参数

  Controller中的业务方法的参数名称与请求参数name一致。参数值会自动映射匹配

@RequestMapping("save6")
@ResponseBody
// responseBody 代表不进行页面跳转。直接响应数据
public void save6(String userName,int age ){
    System.out.println("userName: "+userName+"  age:"+age);
}

 

获得POJO参数

  Controller中业务方法的POJO参数的属性名与请求参数的name一致,参数值会自动映射匹配

http://127.0.0.1:8080/Spring04_03/user/save6?username=zhangsan&age=19
@RequestMapping("save7")
    @ResponseBody
    public void save7(User user){
        System.out.println(user);
    }

 

获得数组类型参数

  Controller中的业务方法的数组名称与请求参数name一致。参数值会自动映射匹配

 @RequestMapping("save8")
    @ResponseBody
    public void save8(String[] strs){
        for (int i = 0; i < strs.length; i++) {
            System.out.println(strs[i]);
        }
    }

 

获得集合类型参数

  

RestFul风格

 

获取静态资源

  因为SpringMVC的特性

    DispatcherServlet进行urlpattern / 匹配所有请求路径。匹配后根据@Controller内的方法映射找到对应资源。

    而静态资源没有在@Controller内没有配置,所以会找不到

    需要<mvc:default-servlet-handler/>:找不到的静态资源由tomcat查找

 

@RequestParam:当请求参数名与Controller业务方法参数名称不一致时。需要通过@RequestParam注解显示的绑定

  参数:

    value:与请求参数名称相同

    required:此指定参数是否必须包含。默认为true。提交时没有该参数报错。可改为false

    defaultVaule:默认值赋值

public void save10(@RequestParam("userName") String name, int age ){
        System.out.println("name: "+name+"  age:"+age);
    }

 

post请求乱码问题

  因为没有filter设置:request.srtCharacterEncoding("utf-8"),所以post请求乱码

  Spring——获得请求参数

 

 

<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>
  </filter>
  <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

加入Spring内置的encodingFilter即可

上一篇:关联规则--Apriori算法案例--Python


下一篇:python数据框处理