Spring MVC 之请求处理方法可接收参数(三)

简介: 请求处理方法可接收参数 今天学习了前三个方法。   1、作用域对象2、单个表单提交数据3、表单数据封装的Bean对象 首先创建一个实体对象。 1 package com.cy.springannotation.

请求处理方法可接收参数

今天学习了前三个方法。

 

1、作用域对象
2、单个表单提交数据
3、表单数据封装的Bean对象

首先创建一个实体对象。

 1 package com.cy.springannotation.entity;
 2 /**
 3  * 定义一个表单实体类
 4  * @author acer
 5  *
 6  */
 7 public class UserBean {
 8     //要求属性名必须要和表单的参数名一样的!
 9     private String username;
10     private String password;
11     public String getUsername() {
12         return username;
13     }
14     public void setUsername(String username) {
15         this.username = username;
16     }
17     public String getPassword() {
18         return password;
19     }
20     public void setPassword(String password) {
21         this.password = password;
22     }
23     
24 
25 }

 

简单的一个jsp页面!login.jsp

为了方便观察 password的type为text。

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>登录页面</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>
24   
25   <body>
26   <form action="login.do" method="post">
27     <table>
28        <tr>
29            <td>用户名:</td>
30            <td><input type="text" name="username"/></td>
31        </tr>
32        <tr>
33            <td>密码</td>
34            <td><input type="text" name="password"/></td>
35        </tr>
36        <tr>
37            <td colspan="2"> <input type="submit" value="提交"/> </td>
38        </tr>
39     </table>
40   </form>
41   </body>
42 </html>

 

 

LoginController.java
 1 package com.cy.springannotation.controller;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 
 5 import org.apache.log4j.Logger;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 import org.springframework.web.bind.annotation.RequestMethod;
 9 import org.springframework.web.bind.annotation.RequestParam;
10 import org.springframework.web.servlet.ModelAndView;
11 
12 import com.cy.springannotation.entity.UserBean;
13 
14 @Controller  // @Controller告知Spring容器这是一个控制器组件
15 public class LoginController {
16     
17     private Logger log=Logger.getLogger(this.getClass());
18     
19     
20     
21     /* @RequestMapping("/login.do")  // @RequestMapping告知该方法是针对/login.do请求的处理方法
22      public String login(String username){
23          System.out.println(username);
24         return "index";           // 返回的字符串被当做ViewName
25          
26      }*/
27     
28     /**
29      * 
30      * 1 、作用域对象
31      * HttpServletRequest,HttpServletResponse,HttpSession
32      * 个数顺序可以自行定义
33      * @param request
34      * @return
35      */
36 
37     /*@RequestMapping("/login.do") 
38     public ModelAndView login(HttpServletRequest request){
39         String username=request.getParameter("username");
40         String password=request.getParameter("password");
41         log.info(username);
42         log.info(password);
43         ModelAndView  mav=new ModelAndView();
44         mav.setViewName("index");
45         return mav;
46         
47     }*/
48     
49     /**
50      * 2、单个表单提交数据
51      */
52     
53     /*@RequestMapping("/login.do")
54     public String login(@RequestParam("username")String name,@RequestParam("password")String pwd){
55         log.info(name);
56         log.info(pwd);
57         return "index";
58     }*/
59 
60     
61     
62     
63     
64     /**method主要是制定请求方法的规则,比如:如果设置了RequestMethod.POST,
65      * 那么你的表单提交就必须使用POST提交,否则将报405错误 
66      params="password" 表示我的表单提交中,一定要有password这个参数,否则将报400的错误*/
67     
68     /**
69      * 2、单个表单提交数据
70      */
71     /*@RequestMapping(value="/login.do",method=RequestMethod.POST,params="password")
72     //如果属性名与提交项名称相同,可以不配置@RequestParam
73     public ModelAndView login(String username,String password){
74         log.info(username);
75         log.info(password);
76         ModelAndView mv = new ModelAndView();
77         mv.setViewName("index");
78         return mv;
79     }*/
80     
81     
82     /**
83      * 3 表单数据封装的Bean对象
84      * @param user
85      * @return
86      */
87     @RequestMapping(value="/login.do")
88     public String login(UserBean user){
89         log.info(user.getUsername());
90         log.info(user.getPassword());
91         return "index";
92     }
93     
94      
95      
96 }

 

 其他的配置都和前一篇是相同的。

 

 

4、Map对象
5、PrintWriter作为参数
6、Cookie中的数据作为参数
7、Http协议头的数据作为参数
8、从restful风格请求从获取数据

 

相关文章
|
1天前
|
前端开发 Java 测试技术
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestParam
本文介绍了 `@RequestParam` 注解的使用方法及其与 `@PathVariable` 的区别。`@RequestParam` 用于从请求中获取参数值(如 GET 请求的 URL 参数或 POST 请求的表单数据),而 `@PathVariable` 用于从 URL 模板中提取参数。文章通过示例代码详细说明了 `@RequestParam` 的常用属性,如 `required` 和 `defaultValue`,并展示了如何用实体类封装大量表单参数以简化处理流程。最后,结合 Postman 测试工具验证了接口的功能。
14 0
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestParam
|
1天前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestBody
`@RequestBody` 是 Spring 框架中的注解,用于将 HTTP 请求体中的 JSON 数据自动映射为 Java 对象。例如,前端通过 POST 请求发送包含 `username` 和 `password` 的 JSON 数据,后端可通过带有 `@RequestBody` 注解的方法参数接收并处理。此注解适用于传递复杂对象的场景,简化了数据解析过程。与表单提交不同,它主要用于接收 JSON 格式的实体数据。
13 0
|
1天前
|
前端开发 Java 微服务
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@PathVariable
`@PathVariable` 是 Spring Boot 中用于从 URL 中提取参数的注解,支持 RESTful 风格接口开发。例如,通过 `@GetMapping(&quot;/user/{id}&quot;)` 可以将 URL 中的 `{id}` 参数自动映射到方法参数中。若参数名不一致,可通过 `@PathVariable(&quot;自定义名&quot;)` 指定绑定关系。此外,还支持多参数占位符,如 `/user/{id}/{name}`,分别映射到方法中的多个参数。运行项目后,访问指定 URL 即可验证参数是否正确接收。
12 0
|
1天前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestMapping
@RequestMapping 是 Spring MVC 中用于请求地址映射的注解,可作用于类或方法上。类级别定义控制器父路径,方法级别进一步指定处理逻辑。常用属性包括 value(请求地址)、method(请求类型,如 GET/POST 等,默认 GET)和 produces(返回内容类型)。例如:`@RequestMapping(value = &quot;/test&quot;, produces = &quot;application/json; charset=UTF-8&quot;)`。此外,针对不同请求方式还有简化注解,如 @GetMapping、@PostMapping 等。
12 0
|
1天前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RestController
本文主要介绍 Spring Boot 中 MVC 开发常用的几个注解及其使用方式,包括 `@RestController`、`@RequestMapping`、`@PathVariable`、`@RequestParam` 和 `@RequestBody`。其中重点讲解了 `@RestController` 注解的构成与特点:它是 `@Controller` 和 `@ResponseBody` 的结合体,适用于返回 JSON 数据的场景。文章还指出,在需要模板渲染(如 Thymeleaf)而非前后端分离的情况下,应使用 `@Controller` 而非 `@RestController`
15 0
|
2月前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
148 29
|
3月前
|
设计模式 前端开发 Java
步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理
通过对 `DispatcherServlet`源码的深入剖析,我们了解了SpringMVC请求处理的全流程。`DispatcherServlet`作为前端控制器,负责请求的接收和分发,处理器映射和适配负责将请求分派到具体的处理器方法,视图解析器负责生成和渲染视图。理解这些核心组件及其交互原理,有助于开发者更好地使用和扩展SpringMVC框架。
77 4
|
10月前
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
10月前
|
前端开发 Java 关系型数据库
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
126 0
|
9月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
174 1