springmvc-6,handler请求入参到handler中

来源:互联网 发布:nslookup查询域名 编辑:程序博客网 时间:2024/05/21 01:43

可以将http请求的信息入参到handler中,例如请求头,请求体,请求参数等。

请求参数(@RequestParam)

/**     * Requestparam注解,使用这个注解来映射请求参数,并且入参到处理方法中     *      * value:请求参数名     *      * required :该参数是否必须,默认true     *      * defaultValue:参数的默认值     */    @RequestMapping(value = "/testRequestParam")    public String testRequestParam(@RequestParam(value = "username", required = true) String username,            @RequestParam(value = "password", required = true) String password,            @RequestParam(value = "age", required = false, defaultValue = "0") int age) {        System.out.println("testRequestParam...");        System.out.println("username:" + username);        System.out.println("password:" + password);        System.out.println("age:" + age);        return "success";    }

请求:

<form action="AAA/testRequestParam">        username:<input type="text" name="username">         password:<input type="text" name="password">         age:<input type="text" name="age">         <input type="submit" value="testRequestParam">    </form>

请求头(@RequestHeader)

    /**     * RequestHeader, 使用这个注解来映射请求头,并且入参到handler中     *      */    @RequestMapping(value = "/testRequestHeader")    public String testRequestHeader(@RequestHeader("Accept-Encoding") String acceptEncoding) {        System.out.println("testRequestHader:" + "Accetp-Encoding:" + acceptEncoding);        return "success";    }

请求:

<a href="AAA/testRequestHeader">testRequestHeader</a>

Cookie(@CookieValue)

    /**     * CookieValue,使用这个参数来映射请求的cookie值,并且传入到handler     *      */    @RequestMapping(value = "/testCookieValue")    public String testCookieValue(@CookieValue(value = "JSESSIONID") String JSESSIONID) {        System.out.println("testCookieValue," + "JSESSIONID:" + JSESSIONID);        return "success";    }

请求:

<a href="AAA/testCookieValue">testCookieValue</a>

使用POJO映射表单

/**     *      * 使用POJO作为参数: 可以使用简单的java类来映射请求参数,springmvc会根据POJO的属性名自动为其赋值,还支持级联属性     *      *      * 例如: 级联属性city:<input type="text" name="address.city">     *      * 需要:     *      * 1,对应的Java类,     *      * 2,普通的属性,name直接填写属性名     *      * 3.级联属性,name填写xxx.xxx     *      */    @RequestMapping(value = "/testPOJO")    public String testPOJO(User user) {        System.out.println("testPOJO");        System.out.println(user);        return "success";    }

请求:

<form action="AAA/testPOJO" method="post">        username:<input type="text" name="username"><br> <br>        password:<input type="password" name="password"><br> <br>        email:<input type="text" name="email"><br> <br>        city:<input type="text" name="address.city"><br> <br>        province:<input type="text" name="address.province"><br>        <br> <input type="submit" value="testPOJO">    </form>

Servlet原生API

/**     * servlet API入参     *      * servletAPI可以直接作为参数传递给handler,具体支持的API包含     *      * HttpServletRequest,HttpServletResponse,HttpSession     *      * Writer,Reader,inputStream,outputStream     *      */    @RequestMapping(value = "/testServletAPI")    public void testServletAPI(HttpServletRequest request, HttpServletResponse response) {        try {        //直接输出一个字符串。            response.getWriter().println("hello Servlet");        } catch (IOException e) {            e.printStackTrace();        }    }

请求:

<a href="AAA/testServletAPI">testServletAPI</a>
原创粉丝点击