当前位置: 首页 > news >正文

springmvc获取参数

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

@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>

转载于:https://my.oschina.net/u/3099393/blog/798365

相关文章:

  • seo工具总结
  • 基础练习 数列排序
  • 当爱已成为过去
  • C语音键盘钩子和用法 模拟键盘
  • ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
  • 详细介绍SQL交叉表的实例
  • mysql随机取3条数据以及优化
  • Google请人为Android挑刺
  • java中的异常理解
  • CSS-border属性制作小三角
  • Net几种常用传值方式
  • JSP学习笔记(二十八):struts2中验证表单内容
  • 如何做好自动化测试,揭秘阿里巴巴分层自动化实践之路
  • 如何在SQL Server数据库中加密数据
  • 唱歌的方法与技巧[收集]
  • ES6之路之模块详解
  • Iterator 和 for...of 循环
  • Java读取Properties文件的六种方法
  • leetcode46 Permutation 排列组合
  • LintCode 31. partitionArray 数组划分
  • Linux CTF 逆向入门
  • log4j2输出到kafka
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • webgl (原生)基础入门指南【一】
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 简析gRPC client 连接管理
  • 离散点最小(凸)包围边界查找
  • 如何实现 font-size 的响应式
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • #etcd#安装时出错
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (02)vite环境变量配置
  • (学习日记)2024.01.09
  • (一)基于IDEA的JAVA基础1
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET 依赖注入和配置系统
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET导入Excel数据
  • .Net的DataSet直接与SQL2005交互
  • @ResponseBody
  • [ABC294Ex] K-Coloring
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [iOS]随机生成UUID通用唯一识别码
  • [LeetCode]Balanced Binary Tree
  • [MongoDB]------windos下的安装部署与基础使用
  • [NOI2020统一省选 A] 组合数问题 (推式子)
  • [SOA介绍]什么是SOA?
  • [SQL调优] Maclean讲SQL调优精要
  • [SQL基础教程] 3-4 对查询结果进行排序/ORDER BY
  • [xboard]real6410-3 S3C6410光盘资料与功能测试
  • [单片机框架][drivers层][bq25601] charger 电源管理
  • [附源码]计算机毕业设计文曦家教预约系统Springboot程序