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

长沙旅游网站制作免费开源企业cms

长沙旅游网站制作,免费开源企业cms,通辽市城乡建设局网站,天津做一个简单的网站目录 基本概念 编写 Controller 的步骤和要点 1. 定义 Controller 类 2. 映射请求 3. 处理请求参数 4. 调用业务逻辑 5. 返回响应 场景示例 1. 简单的 Hello World 示例 2. 处理路径变量和请求参数 3. 处理表单提交 4. 处理 JSON 数据 5. 异常处理 基本概念 Cont…

目录

基本概念

编写 Controller 的步骤和要点

1. 定义 Controller 类

2. 映射请求

3. 处理请求参数

4. 调用业务逻辑

5. 返回响应

场景示例

1. 简单的 Hello World 示例

2. 处理路径变量和请求参数

3. 处理表单提交

4. 处理 JSON 数据

5. 异常处理


基本概念

Controller 是 Spring MVC 架构中的核心组件之一,它负责接收客户端的请求,调用相应的业务逻辑进行处理,并将处理结果返回给客户端。通常,Controller 会根据请求的 URL 和 HTTP 方法,将请求分发到具体的处理方法上。

编写 Controller 的步骤和要点

1. 定义 Controller 类

使用 @Controller 注解标记一个类,表明该类是一个 Spring MVC 的控制器。也可以使用 @RestController 注解,它是 @Controller 和 @ResponseBody 的组合,适用于返回 JSON 或 XML 等数据的场景。

2. 映射请求

使用 @RequestMapping@GetMapping@PostMapping 等注解将 HTTP 请求映射到 Controller 中的具体方法上。这些注解可以指定请求的 URL、HTTP 方法、请求参数等。

3. 处理请求参数

使用 @RequestParam@PathVariable@RequestBody 等注解来获取请求中的参数,并将其绑定到方法的参数上。

4. 调用业务逻辑

在处理方法中调用业务逻辑层(如 Service 层)的方法,完成具体的业务处理。

5. 返回响应

可以返回视图名、ModelAndView 对象、ResponseEntity 对象或直接返回数据(使用 @ResponseBody 注解)。

场景示例

1. 简单的 Hello World 示例
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class HelloController {@GetMapping("/hello")@ResponseBodypublic String sayHello() {return "Hello, World!";}
}

解释

  • @Controller 注解标记 HelloController 类为控制器。
  • @GetMapping("/hello") 注解将 /hello 的 GET 请求映射到 sayHello 方法上。
  • @ResponseBody 注解表示方法的返回值将直接作为 HTTP 响应的主体内容返回给客户端。
2. 处理路径变量和请求参数
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class UserController {@GetMapping("/users/{id}")@ResponseBodypublic String getUserById(@PathVariable("id") int userId) {return "User ID: " + userId;}@GetMapping("/search")@ResponseBodypublic String searchUsers(@RequestParam("keyword") String keyword) {return "Searching for users with keyword: " + keyword;}
}

解释

  • @GetMapping("/users/{id}") 定义了一个带有路径变量的请求映射,{id} 表示路径中的变量部分。
  • @PathVariable("id") 注解将路径变量 id 的值绑定到 userId 参数上。
  • @GetMapping("/search") 定义了一个普通的请求映射。
  • @RequestParam("keyword") 注解将请求参数 keyword 的值绑定到 keyword 参数上。
3. 处理表单提交
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
public class FormController {@GetMapping("/form")public String showForm() {return "form"; // 返回视图名}@PostMapping("/form")public String processForm(@RequestParam("name") String name, @RequestParam("age") int age, Model model) {model.addAttribute("name", name);model.addAttribute("age", age);return "result"; // 返回视图名}
}

解释

  • @GetMapping("/form") 处理 GET 请求,返回 form 视图,通常是一个表单页面。
  • @PostMapping("/form") 处理表单提交的 POST 请求,使用 @RequestParam 获取表单数据,并将数据添加到 Model 中,最后返回 result 视图,显示处理结果。
4. 处理 JSON 数据
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class JsonController {@PostMapping("/json")@ResponseBodypublic ResponseEntity<User> processJson(@RequestBody User user) {// 处理用户数据return new ResponseEntity<>(user, HttpStatus.OK);}
}class User {private String name;private int age;// Getters and Setterspublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

解释

  • @PostMapping("/json") 处理 POST 请求。
  • @RequestBody 注解将请求体中的 JSON 数据转换为 User 对象。
  • ResponseEntity 用于封装响应数据和 HTTP 状态码,将处理后的 User 对象以 JSON 格式返回给客户端。
5. 异常处理
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class ExceptionController {@GetMapping("/error")@ResponseBodypublic String throwException() {throw new RuntimeException("Something went wrong!");}@ExceptionHandler(RuntimeException.class)@ResponseBodypublic ResponseEntity<String> handleException(RuntimeException ex) {return new ResponseEntity<>(ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);}
}

解释

  • @GetMapping("/error") 方法故意抛出一个 RuntimeException
  • @ExceptionHandler(RuntimeException.class) 注解定义了一个异常处理方法,当 Controller 中抛出 RuntimeException 时,会调用该方法进行处理,返回错误信息和 HTTP 状态码 500。

通过以上示例,可以看到 Controller 在不同场景下的编写方式和应用,根据具体的需求选择合适的注解和处理方式,能够高效地处理客户端请求。


文章转载自:

http://LTvGABXu.kfcLh.cn
http://yxDgmA81.kfcLh.cn
http://qUJkUJjL.kfcLh.cn
http://yRY9SIwL.kfcLh.cn
http://0pP8zvWo.kfcLh.cn
http://AFdBokXh.kfcLh.cn
http://f6Xff8gD.kfcLh.cn
http://MqCdkZ4Q.kfcLh.cn
http://QHJiWLzB.kfcLh.cn
http://RnNceIjG.kfcLh.cn
http://PDJu8IPB.kfcLh.cn
http://B9j3sCNI.kfcLh.cn
http://3Hovy6cI.kfcLh.cn
http://q4viGnPM.kfcLh.cn
http://hBQLXqfF.kfcLh.cn
http://QhiCQ4wQ.kfcLh.cn
http://Hv6MHlmA.kfcLh.cn
http://GBoEcBjn.kfcLh.cn
http://4IZqwsCo.kfcLh.cn
http://pxqs2c4F.kfcLh.cn
http://UBu8UFUY.kfcLh.cn
http://1KQ7CmHc.kfcLh.cn
http://S6P1XKyk.kfcLh.cn
http://j0PIaRor.kfcLh.cn
http://o6lbt2tr.kfcLh.cn
http://lS24pNxB.kfcLh.cn
http://ooOVYPcr.kfcLh.cn
http://IgZS9tYa.kfcLh.cn
http://q4GO9y0V.kfcLh.cn
http://tS63Yqk5.kfcLh.cn
http://www.dtcms.com/wzjs/694848.html

相关文章:

  • 三农网络公司排名seo快速培训
  • 武昌网站建设制作wordpress 二开北京
  • 公司网站进不去qq空间网页设计作品源代码彼岸花坊
  • 做好的网站怎么发布网站建设相关技术方案
  • 2017主流网站风格自己搭建一个网站需要多少钱?
  • 网站建设前期策划游戏网站制作教程
  • 哪个网站做海南二手房沈阳做网站优秀公司
  • 小广告网站wordpress媒体缩略图
  • 公司三站合一的网站龙岩网站设计培训
  • 农村建设有限公司网站西安短视频制作公司
  • 商业网站建设的目的wordpress播放swf插件
  • 做转运网站建设网站注意哪几点
  • 白沙的网站建设旅游网站建设电子商务的困惑
  • dede 网站地图样式小时seo百度关键词点击器
  • 网站建设初步规划网络seo专员招聘
  • 网站开发英文术语无锡找做网站公司
  • 济南网站建设服务公司有了网址可以建网站吗
  • 定制开发网站多少钱手机新机价格网站
  • 金山建设机械网站马鞍山网站建设制作公司
  • 南京建设机械网站手机微网站平台登录入口
  • 建筑企业资质查询官方网站个人网站免费源码大全
  • readme.md做网站中国建筑官网采购平台
  • 做商业网站是否要备案网站教程分享
  • 百度指数分是什么网络推广优化平台
  • 自己怎样优化网站wordpress主题带有推荐功能
  • 湖南中耀建设集团有限公司网站世界球队最新排名
  • 深圳网站开发网站制作网站开发
  • 哪些购物网站用php做的广告推广的方式有哪些
  • 网站建设适合的企业建设网络课程平台费用
  • 做化妆品的一些网站网站模板怎么套用