• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
风吹花落泪如雨
博客园    首页    新随笔    联系   管理    订阅  订阅

springMVC学习笔记整理(二)-----获取数据

一、RequestMapping修饰类

package com.springmvc.handler;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
//类定义处:提供初步的请求映射信息。相对于web应用的根目录
@RequestMapping("springmvc")
public class HelloWorldHandler {
    //方法处:提供进一步的的细分映射信息。相对于类定义处的URL
    //如果一个注解只有一个value属性,可以省略value
    @RequestMapping("/hello")
    public String hello() {
        System.out.println("走入到了hello方法中.....");
        return "success";
    }
}

 

 

二、RequestMapping精准化映射

@RequestMapping的value、method、params及headers分别表示请求URL、请求方法、请求参数以及请求头的映射条件

@Controller
//类定义处:提供初步的请求映射信息。相对于web应用的根目录
@RequestMapping("springmvc")
public class HelloWorldHandler {
    //方法处:提供进一步的的细分映射信息。相对于类定义处的URL
    //如果一个注解只有一个value属性,可以省略value
    @RequestMapping(value="/hello",method=RequestMethod.GET,params={"name=tom","age!=12"},headers={"accept=text/html"})
    public String hello() {
        System.out.println("走入到了hello方法中.....");
        return "success";
    }
}

 

 

三、Ant风格URL

 Ant风格资源地址支持3种匹配符:

?:匹配文件名中的一个字符

*:匹配文件名中的任意字符

**:匹配多层路径

@RequestMapping("/**/*Styl?")
    public String antStyle() {
        System.out.println("走入到了andStyle方法中.....");
        return "success";
    }

 

 四、带有占位符的RUL映射

    //Rest风格URL
    @RequestMapping(value="/testPathVar/{id}")
    public String testPathVar(@PathVariable(value="id") int id) {
        System.out.println(id);
        return "success";
    }

 

五、REST风格架构

hiddenHttpMethodFilter:过滤器,可以过滤我们所有的请求,并且可以将请求细分为四种。

get--->

post--->寻找请求参数,是否有一个名字_method这样的一个请求方式,DELETE或PUT请求。如果没有,就是post

1、编写jsp文件

    获取用户信息:
    <a href="springmvc/testGet/12">Test GET</a>
    <br/>
    新建用户信息:
    <form method="post" action="springmvc/testPost">
        <input type="submit" value="POST"/>
    </form>
    <br/>
    删除用户信息:
    <form method="post" action="springmvc/testDelete/12">
        <input type="hidden" name="_method" value="DELETE"/>
        <input type="submit" value="DELETE">
    </form>
    <br/>
    更新用户信息:
    <form method="post" action="springmvc/testPut/12">
        <input type="hidden" name="_method" value="PUT"/>
        <input type="submit" value="PUT">
    </form>

2、编写@Controller

    //Rest风格URL
    @RequestMapping(value="/testGet/{id}",method=RequestMethod.GET)
    public String testGet(@PathVariable(value="id") Integer id) {
        System.out.println("正在获取id为" + id + "对应的员工信息");
        return "success";
    }
    @RequestMapping(value="/testPost",method=RequestMethod.POST)
    public String testPost() {
        System.out.println("正在向数据库添加员工");
        return "success";
    }
    @ResponseBody
    @RequestMapping(value="/testDelete/{id}",method=RequestMethod.DELETE)
    public String testDelete(@PathVariable(value="id") Integer id)  {
        System.out.println("正在删除id为" + id + "员工的信息");
        return "success";
    }
    @ResponseBody
    @RequestMapping(value="/testPut/{id}",method=RequestMethod.PUT)
    public String testPut(@PathVariable(value="id") Integer id)  {
        System.out.println("正在更新id为" + id + "员工的信息");
        return "success";
    }

3、配置web.xml

    <filter>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

六、RequestParam获取请求正文

 SpringMVC是通过处理方法的形参与请求参数进行绑定

1、编写jsp文件

    测试获取请求参数:
    <form action="springmvc/testRequestParam">
        id:<input type="text" name="id"/><br/>
        name:<input type="text" name="name"/><br/>
        <input type="submit" value="submit">
    </form>

2、编写@Controller

    //形参声明前面:加入@RequestParam(value="前端空间的name属性值")
    //如果形参名字与我们请求参数名称一致,可以省略RequestParam
    //required=true,当前请求参数为必须有,若无,则报错
    @RequestMapping(value="testRequestParam")
    public String testRequestParam(@RequestParam(value="id",required=true)Integer a,String name)  {
        System.out.println(a);
        System.out.println(name);
        return "success";
    }

 

七、POJO绑定请求参数

SpringMVC会按请求参数名和POJO属性名进行自动匹配,支持级联属性(Adderss)

1、编写jsp文件

    测试获取请求Pojo:
    <form action="springmvc/testRequestPojo">
        id:<input type="text" name="id"/><br/>
        name:<input type="text" name="name"/><br/>
        city:<input type="text" name="address.city"/><br/>
        street:<input type="text" name="address.street"/><br/>    
        <input type="submit" value="submit">
    </form>

2、编写POJO对象

User

public class User {
    private Integer id;
    private String name;
    private Address address;
    //..getter()...setter()..toString()..      
}    

Address

public class Address {
    private String city;
    private String street;
    //..getter()...setter()..toString()..      
}

3、编写@Controller

    //POJO绑定请求
    @RequestMapping(value="testRequestPojo")
    public String testRequestPojo(User user)  {
        System.out.println(user);
        return "success";
    }

 

八、RequestHeader获取请求报头信息

1、编写jsp文件

    获取请求报头信息:
    <a href="springmvc/testRequestHeader">RequestHeader</a>

2、编写@Controller

    //RequestHeader获取请求报头信息
    @RequestMapping(value="/testRequestHeader")
    public String testRequestHeader(@RequestHeader("Accept")String a,@RequestHeader("User-Agent")String b) {
        System.out.println(a);
        System.out.println(b);
        return "success";
    }

 

九、CookieValue获取Cookie信息

    //@CookieValue获取Cookie信息
    @RequestMapping(value="/testCookieValue")
    public String testCookieValue(@CookieValue("JSESSIONID")String id) {
        System.out.println(id);
        return "success";
    }

 

posted @ 2018-08-28 23:39  风吹花落泪如雨  阅读(111)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3