springmvc获取参数

@RequestParam

@RequestParam 用来请求request中的参数,相当于request.getParameter() 其中有三个属性:
1、value用来指定要取得参数的key
2、required 所取的参数是否必须存在,如果true表示必须存在,若不存在则抛出异常
3、default 指定该value的默认值

类实现代码:

    @RequestMapping("/requestParam")
    public String requestParam(
            @RequestParam(value = "id", required = false) Integer id) {

        System.out.println("the id is:" + id);

        return SUCCESS;

    }

测试请求代码

<a href="paramSelect/requestParam?id=10">RequestParam 测试</a>

@RequestHeader

用来获取request头中的信息,其中参数的使用方法同@RequestParam

类实现代码

    @RequestMapping("/requestHeader")
    public String requestHeader(
            @RequestHeader(value = "User-Agent", required = true, defaultValue = "") String ua) {
        System.out.println("the User-Agent is:" + ua);
        return SUCCESS;

    }

测试请求代码

<a href="paramSelect/requestHeader">RequestHeader 测试</a>

@RequestMapping

用来获取cookie中的参数,属性使用同@RequestParma

类实现代码:

    @RequestMapping("/cookieValue")
    public String cookieValue(@CookieValue(value = "JSESSIONID") String jid) {
        System.out.println("JSESSIONID is:" + jid);
        return SUCCESS;
    }

测试请求代码:

<a href="paramSelect/cookieValue">CookieValue 测试</a>

获取javabean类型的参数(自动把参数封装成javabean)

1、可以把一个javabean当作请求参数传入,要求表单中的属性名称与javabean中的成员变量能一一对应,则springmvc会自动匹配

2、传入参数可以级联,如User中有一个birthday变量为Birthday类型,也可自动匹配

类实现代码

@RequestMapping("/postBean")
    public String postBean(User user) {
        System.err.println(user);
        return SUCCESS;
    }

User类:

public class User {
    private String username;
    private String password;

    private Birthday birthday;

    public User() {

    }

    public User(String username, String password, Birthday birthday) {
        super();
        this.username = username;
        this.password = password;
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "User [username=" + username + ", password=" + password
                + ", birthday=" + birthday + "]";
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getpassword() {
        return password;
    }

    public void setpassword(String password) {
        this.password = password;
    }

    public Birthday getBirthday() {
        return birthday;
    }

    public void setBirthday(Birthday birthday) {
        this.birthday = birthday;
    }

}

Birthday类

public class Birthday {
    private int month;
    private int year;

    public Birthday() {

    }

    public Birthday(int month, int year) {
        super();
        this.month = month;
        this.year = year;
    }

    @Override
    public String toString() {
        return "Birthday [month=" + month + ", year=" + year + "]";
    }

    public int getMonth() {
        return month;
    }

    public void setMonth(int month) {
        this.month = month;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

}

请求测试代码:

<form action="paramSelect/postBean" method="post">
    用户名:<input type="text" name="username">
    <br>
    密码:<input type="password" name="password">
    <br>
    出生月:<input type="text" name="birthday.month">
    <br>
    出生年:<input type="text" name="birthday.year">
    <br>
    <input type="submit" value="submit">
</form>

获取Servlet API 中类型参数

在请求参数中可以放入servlet中的api,springmvc会自动适配并传入对应参数

可获取的类型包括如下:

        • HttpServletRequest
        • HttpServletResponse
        • HttpSession
        • java.security.Principal
        • Locale
        • InputStream
        • OutputStream
        • Reader
        • Writer

类实现代码

@RequestMapping("/servletTest")
    public void servletTest(HttpServletRequest request,
            HttpServletResponse response) throws IOException {

        PrintWriter out = response.getWriter();
        System.out.println("Test success");
        out.println("Test success");

    }

测试请求方法:

<a href="paramSelect/servletTest">Servlet API 测试</a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值