springmvc实验(三)——请求映射

【知识要点】

  1. 方法映射概念
    所谓的方法映射就是将前端发送的请求地址和后端提供的服务方法进行关联。在springMVC框架中主要使用@Controller和@RequestMapping两个注解符,实现请求和方法精准匹配。
  2. 注解符@Controller
    Spring中包含了一个Controller接口,但是实现Controller接口只能处理一个单一的请求,使用起来非常不灵活。使用@Controller注解,可以标记类的实例是一个SpringMVC控制器对象,并可以支持同时处理多个请求动作,相对于实现变得更加简单,更加灵活,分发处理器会扫描使用了该注解类的方法
  3. 注解符@RequestMapping
    SpringMVC中使用@RequestMapping来映射请求,也就是通过它来指定控制器可以处理哪些URL请求。注解符@RequestMapping可以使用到方法上,也可以使用到类上。注解符@RequestMapping使用在方法上,与URL中最后一个反斜杠后值与方法建立映射关系,注解在方法上时@RequestMapping很多属性,常用属性如下表所示,使用这些属性规定匹配规则。注解在类上,代表该类中所有方法都将映射为相对于类级别的请求,该控制器所处理的所有请求都被映射到value属性值所指定的路径下,起到窄化路径的作用

    4)方法映射的组合注解
    Spring框架的4.3版本中,引入了新的组合注解,来帮助简化常用的HTTP方法的映射,并更好的表达被注解方法的语义,如下表所示。

【实验目的】

  • 了解注解符@Controller
  • 熟悉springMVC请求映射过程
  • 熟悉组合注解的使用
  • 掌握@RequestMapping的使用

【实验内容】

  1. 编写前端控制器StudentController
  2. 注解符@Controller的使用
  3. 验证注解符@RequestMapping及其属性的使用

【实验步骤】

1. 创建SpringMVC工程demo2

2. 代码编写

在com.bjwl.controller包中添加学生控制类(StudentController),其代码如下所示

java 复制代码
@Controller  
@RequestMapping("student")  
public class StudentController {  
    @RequestMapping("list")  
    public void getAllStudent(HttpServletResponse response) throws IOException {  
        response.setContentType("text/html;charset=utf-8");  
        response.getWriter().write("测试注解符@RequestMapping中value");  
    }  
} 

代码的第1行使用注解符@Controller标注该类的实例是一个控制器对象;第2行在类上使用@RequestMapping注解,进行路径窄化表示请求路径必须包括student;第4行在方法使用@RequestMapping注解,请求url中最后一部分值与注解符value中的值进行匹配,从而建立请求与方法的映射关系

3. 验证@RequestMapping属性

  1. 验证method属性,下述代码中请求方法只能使用post方法,代码如下所示
java 复制代码
@RequestMapping(value="list2",method = {RequestMethod.POST})  
public void InsertStudent(HttpServletResponse response) throws IOException {  
    response.setContentType("text/html;charset=utf-8");  
    response.getWriter().write("测试注解符@RequestMapping中method的使用");  
}  
  1. 验证params属性,示例代码中匹配请求参数必须包含username和password,且username的值不能是李四,代码如下所示
java 复制代码
@RequestMapping(value = "verify3",params = {"username!=李四","password"})  
public void handle3(HttpServletRequest request,  
                      HttpServletResponse response) throws Exception {  
    response.setContentType("text/html;charset=utf-8");  
    response.getWriter().write("测试注解符@RequestMapping中paramsshuxing ");  
} 
  1. 验证consumes和produces。示例代码中匹配的方法仅处理请求Content-Type为application/json类型的请求,produces标识代表返回的内容类型为application/json;代码如下所示
java 复制代码
@RequestMapping(value = "verify5",consumes="application/json", produces="application/json")  
public void handle5(HttpServletRequest request,  
                    HttpServletResponse response) throws Exception {  
    response.setContentType("application/json;charset=utf-8");  
    response.getWriter().write("验证consumes和produces");  
}

4) 验证headers属性。使用headers可以更精确的映射请求,指定request中必须包含某些指定的header值,才能让该方法处理请求,代码如下所示。

java 复制代码
@RequestMapping(value = "verify6",headers = "Content-Type=application/json;charset=utf-8")  
public void handle6(HttpServletRequest request,  
                    HttpServletResponse response) throws Exception {  
    response.setContentType("application/json;charset=utf-8");  
    response.getWriter().write("验证headers属性");  
}  

4. 组合注解的使用

以下仅验证@PostMapping和@PutMapping注解,示例代码如下。

java 复制代码
    @PostMapping("insert")
    public void insert(HttpServletResponse response) throws IOException {
        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write("验证@PostMapping,新增成功");
    }
    @PutMapping("update")
    public void update(HttpServletResponse response) throws IOException {
        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write("验证@PutMapping,修改成功");
    }

修改请求方法类型,返回404

相关推荐
一颗花生米。10 分钟前
深入理解JavaScript 的原型继承
java·开发语言·javascript·原型模式
问道飞鱼11 分钟前
Java基础-单例模式的实现
java·开发语言·单例模式
ok!ko4 小时前
设计模式之原型模式(通俗易懂--代码辅助理解【Java版】)
java·设计模式·原型模式
2402_857589364 小时前
“衣依”服装销售平台:Spring Boot框架的设计与实现
java·spring boot·后端
吾爱星辰5 小时前
Kotlin 处理字符串和正则表达式(二十一)
java·开发语言·jvm·正则表达式·kotlin
哎呦没5 小时前
大学生就业招聘:Spring Boot系统的架构分析
java·spring boot·后端
编程、小哥哥6 小时前
netty之Netty与SpringBoot整合
java·spring boot·spring
IT学长编程7 小时前
计算机毕业设计 玩具租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·玩具租赁系统
莹雨潇潇7 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
杨哥带你写代码7 小时前
足球青训俱乐部管理:Spring Boot技术驱动
java·spring boot·后端