atwood-pan

 

SpringMVC03—RestFul和Controller

控制器Controller

  • 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。
  • 控制器负责解析用户的请求并将其转换为一个模型。
  • 在Spring MVC中一个控制器类可以包含多个方法
  • 在Spring MVC中,对于Controller的配置方式有很多种。

实现Controller接口

Controller是一个接口,该接口下只有一个方法。

//实现该接口的类获得控制器功能
public interface Controller {
//处理请求且返回一个模型与视图对象
ModelAndView handleRequest(HttpServletRequest var1, HttpServletResponse var2) throws Exception;
}

测试

  1. 新建一个子项目
  2. 编写一个Controller类,ControllerTest1
//定义控制器
//注意点:不要导错包,实现Controller接口,重写方法;
public class ControllerTest1 implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//返回一个模型视图对象
ModelAndView mv = new ModelAndView();
mv.addObject("msg","Test1Controller");
mv.setViewName("test");
return mv;
}
}
  1. 在Spring配置文件中注册bean
<bean name="/t1" class="com.kuang.controller.ControllerTest1"/>
  1. 在WEB-INF/jsp目录下编写,test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>P-P</title>
</head>
<body>
${msg}
</body>
</html>

使用注解@Controller

  • @Controller注解类型用于声明Spring类的实例是一个控制器
  • Spring可以使用扫描机制来找到应用程序中所有基于注解的控制器类,这需要在配置文件中声明组建扫描。
<context:component-scan base-package="com.pp.controller"/>
  • 创建一个ControllerTest2,使用注解实现
package com.pp.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
//@RequestMapping("/hello1")
public class HelloController {
@RequestMapping("/h1")
public String hello(Model model){
model.addAttribute("msg","HelloSpringMVCAnnotation");
return "hello";
}
@RequestMapping("/h2")
public String hello2(Model model){
model.addAttribute("msg","HelloSpringMVCAnnotation22222222222");
return "hello";
}
}

RestFul风格

RestFul就是一个资源定位及资源操作的风格。

功能:
资源:互联网所有的食物都可以被抽象为资源
资源操作:使用post、delete、put、get,使用不同方法对资源进行操作。分别对应 添加、删除、修改、查询。

学习测试:

  1. 新建一个RestFulController
  2. 在SpringMVC中可以使用@PathVariable注解,让方法参数的值对应绑定到一个URL模版变量上。
@Controller
public class RestFulController {
//映射访问路径
@RequestMapping("/commit/{p1}/{p2}")
public String index(@PathVariable int p1, @PathVariable int p2, Model model){
int result = p1+p2;
//Spring MVC会自动实例化一个Model对象用于向视图中传值
model.addAttribute("msg", "结果:"+result);
//返回视图位置
return "test";
}
}

方法级别的注解:

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

其中@GetMapping是使用最多的

posted on   JavaCoderPan  阅读(14)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南

导航

统计

点击右上角即可分享
微信分享提示