SpringMVC 映射请求数据

简介: SpringMVC 映射请求数据

SpringMVC 映射请求数据获取案例–模型数据


获取参数值


说明

  1. 开发中,如何获取到http://xxx/url?参数名=参数值&参数名=参数值
  2. 这个使用的非常广泛,我们看一个案例


应用实例


创建springmvc\src\com\web\requestparam\VoteHandler.java

@RequestMapping("/vote")
@Controller
public class VoteHandler {
    //获取到超链接传递的数据
    /**
    * 解读@RequestParam(value="name", required=false)
    * 1.@RequestParam : 表示说明一个接受到的参数
    * 2.value="name" : 接收的参数名是name,接收名必须和前端一致,否则为null
    * 3.required=false : 表示该参数可以有,也可以没有,如果required=true,表示必须传递该 参数.
    * 默认是required=true
    */
    @RequestMapping(value = "/vote01")
    public String test01(@RequestParam(value = "name", required = false)
    String username) {
    System.out.println("得到的username= " + username);
    //返回到一个结果
    return "success";
    }
}


创建springmvc\web\request_parameter.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
      <title>测试request parameter</title>
    </head>
    <body>
            <h2>获取到超链接参数值</h2>
            <hr/>
            <a href="vote/vote01?name=rsthht">获取超链接的参数</a>
    </body>
</html>

页面完成测试。


获取http 请求消息头


应用实例


  1. 修改VoteHandler.java, 增加方法
@RequestMapping(value = "/vote02")
public String test02(@RequestHeader("Accept-Encoding") String ae,@RequestHeader("Host") String host) {
    System.out.println("Accept-Encoding =" + ae);
    System.out.println("Host =" + host);
    //返回到一个结果
    return "success";
}


  1. 修改request_parameter.jsp, 增加代码
<h1>获取到消息头</h1>
<hr>
<a href="vote/vote02">获取http 消息头信息</a>


获取javabean 形式的数据


开发中,如何获取到javaben 的数据,就是以前的entity/pojo 对象数据


应用实例


创建springmvc\src\com\web\requestparam\entity\Pet.java

public class Pet {
        private Integer id;
        private String name;
}


创建springmvc\src\com\web\requestparam\entity\Master.java

public class Master {
    private Integer id;
    private String name;
    private Pet pet;//对象的属性是另外一个对象[涉及级联]
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Pet getPet() {
        return pet;
    }
    public void setPet(Pet pet) {
        this.pet = pet;
    }
    @Override
    public String toString() {
        return "Master{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pet=" + pet +
                '}';
    }
}


修改VoteHandler.java, 增加方法

//获取到添加的主人信息
@RequestMapping(value = "/vote03")
public String test03(Master master) {
        System.out.println("主人信息= " + master);
        //返回结果
        return "success";
}


修改request_parameter.jsp, 增加演示代码

<h1>添加主人信息</h1>
<!--
1. 这是一个表单,表单的数据对应Master对象
2. 提交的数据参数名和对象的字段名一致
-->
<form action="vote/vote03" method="post">
    主人号:<input type="text" name="id"><br>
    主人名:<input type="text" name="name"><br>
    宠物号:<input type="text" name="pet.id"><br>
    宠物名:<input type="text" name="pet.name"><br>
    <input type="submit" value="添加主人和宠物">
</form>

完成测试。


使用注意事项


  1. 支持级联数据获取
  2. 表单的控件名称name 需要和javabean 对象字段对应, 否则就是null


获取servlet api


应用实例


  1. 开发中, 我们可能需要使用到原生的servlet api 。
  2. 使用servlet api , 需要引入tomcat/lib 下的servlet-api.jar。


修改VoteHandler.java, 增加方法。

@RequestMapping(value = "/vote04")
public String test04(HttpServletRequest request,HttpServletResponse response) {
    System.out.println("name= " + request.getParameter("username"));
    System.out.println("pwd= " + request.getParameter("pwd"));
    //返回结果
    return "success";
}


修改request_parameter.jsp

<hr>
<h1>获取servlet api </h1>
    <form action="vote/vote04" method="post">
            用户名:<input type="text" name="username"><br>
            密码:<input type="text" name="pwd"><br>
            <input type="submit" value="添加主人和宠物">
    </form>

完成测试


使用注意事项

除了HttpServletRequest, HttpServletResponse 还可以其它对象也可以这样的形式获取


HttpSession、java.security.Principal,InputStream,OutputStream,Reader,Writer


其中一些对象也可以通过HttpServletRequest / HttpServletResponse 对象获取,比如Session 对象,既可以通过参数传入,也以通过request.getSession() 获取,


效果一样,推荐使用参数形式传入,更加简单明了。

举例说明

@RequestMapping(value = "/vote04")
public String test04(HttpServletRequest request,HttpServletResponse response, HttpSession hs) {
        System.out.println("name= " + request.getParameter("username"));
        System.out.println("pwd= " + request.getParameter("pwd"));
        //可以看到hs 和request.getSession() 是同一个对象
        System.out.println("httpSession=" + httpSession);
        System.out.println("httpSession2=" + request.getSession());
        //返回结果
        return "success";
}


相关文章
|
存储 前端开发 Java
SpringMVC中重定向请求时传输参数原理分析与实践
SpringMVC中重定向请求时传输参数原理分析与实践
215 2
SpringMVC中重定向请求时传输参数原理分析与实践
|
前端开发 应用服务中间件
SpringMVC 文件上传 消息 Required request part ‘file‘ is not present描述 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者
SpringMVC 文件上传 消息 Required request part ‘file‘ is not present描述 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者
2039 0
|
JSON 前端开发 Java
springmvc-controller&视图层配置&SpringMVC处理请求的流程
springmvc-controller&视图层配置&SpringMVC处理请求的流程
|
7月前
|
JSON 数据格式
SpringMVC-接收请求中的json数据及日期类型参数传递
SpringMVC-接收请求中的json数据及日期类型参数传递
163 0
|
27天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
103 2
|
2月前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
51 1
Spring MVC——项目创建和建立请求连接
|
2月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
61 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
3月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
5月前
|
缓存 前端开发 Java
SpringMVC原理(1)-文件上传请求
【7月更文挑战第2天】SpringMVC文件上传请求原理:文件上传请求的执行流程、文件上传的自动配置原理 涉及组件:MultiPartFile、MultipartResolver、MultipartHttpServlet
|
6月前
|
前端开发 Java Spring
Spring MVC 请求处理流程
Spring MVC 请求处理流程
38 0