Spring MVC相应数据

打印 上一主题 下一主题

主题 986|帖子 986|积分 2958

handler方法分析

  1. /**
  2. * TODO: 一个controller的方法是控制层的一个处理器,我们称为handler
  3. * TODO: handler需要使用@RequestMapping/@GetMapping系列,声明路径,在HandlerMapping中注册,供DS查找!
  4. * TODO: handler作用总结:
  5. *       1.接收请求参数(param,json,pathVariable,共享域等)
  6. *       2.调用业务逻辑
  7. *       3.响应前端数据(页面(不讲解模版页面跳转),json,转发和重定向等)
  8. * TODO: handler如何处理呢
  9. *       1.接收参数: handler(形参列表: 主要的作用就是用来接收参数)
  10. *       2.调用业务: { 方法体  可以向后调用业务方法 service.xx() }
  11. *       3.响应数据: return 返回结果,可以快速响应前端数据
  12. */
  13. @GetMapping
  14. public Object handler(简化请求参数接收){
  15.     调用业务方法
  16.     返回的结果 (一般都是进行页面跳转,或者返回数据给客户端(json))
  17.     return 简化响应前端数据;
  18. }
复制代码
页面跳转控制

开发模式

混合开发模式:指将前端和后端的代码集成在同一个项目中,对于混合开发,我们就需要利用动态页面技术,动态展示Java的共享域数据
前后端分离:前端的界面和后端的业务逻辑通过接口分离开发的一种方式,前端开发职员主要负责页面的呈现和用户交互,后端开发职员主要负责业务逻辑和数据存储。前后端通讯通过 API 接口完成,数据格式一样平常利用 JSON 或 XML。
jsp

JSP(JavaServer Pages)是一种动态网页开发技术,可以在 HTML 文件中嵌入 Java 代码。它允许将 Java 代码嵌入到 HTML 页面中,以便利用 Java 举行数据库查询、处理表单数据和生成 HTML 等动态内容。别的,JSP 还可以与 Servlet 联合利用,实现更加复杂的 Web 应用步伐开发。
  1. <!-- jsp需要依赖! jstl-->
  2. <dependency>
  3.     <groupId>jakarta.servlet.jsp.jstl</groupId>
  4.     <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
  5.     <version>3.0.0</version>
  6. </dependency>
复制代码
建议位置:/WEB-INF/下,制止外部直接访问! 

转发和重定向


  1. @RequestMapping("/redirect-demo")
  2. public String redirectDemo() {
  3.     // 重定向到 /demo 路径
  4.     return "redirect:/demo";
  5. }
  6. @RequestMapping("/forward-demo")
  7. public String forwardDemo() {
  8.     // 转发到 /demo 路径
  9.     return "forward:/demo";
  10. }
  11. //注意: 转发和重定向到项目下资源路径都是相同,都不需要添加项目根路径!填写项目下路径即可!
复制代码

留意:在springmvc下,如果是项目下的资源,转发和重定向都一样都是项目下路径!都不需要添加项目根路径! 
在非springmvc模式下,重定向需要添加项目根路径
重定向可以连接到外部地址,但是转发只能转发项目内部地址

 返回json数据

准备

1/准备json依赖
  1. <dependency>
  2.     <groupId>com.fasterxml.jackson.core</groupId>
  3.     <artifactId>jackson-databind</artifactId>
  4.     <version>2.15.0</version>
  5. </dependency>
复制代码
2/设置json数据转化器

json数据处理,必须利用此注解,由于他会加入json处理器
@ResponseBody

  1. @ResponseBody 只直接返回字符串给前端,不要找视图解析器
复制代码
表现方法的返回值是要直接返回给客户端的数据,而不是由视图解析器来解析并渲染生成相应体
  1. @RequestMapping(value = "/user/detail", method = RequestMethod.POST)
  2. @ResponseBody
  3. public User getUser(@RequestBody User userParam) {
  4.     System.out.println("userParam = " + userParam);
  5.     User user = new User();
  6.     user.setAge(18);
  7.     user.setName("John");
  8.     //返回的对象,会使用jackson的序列化工具,转成json返回给前端!
  9.     return user;
  10. }
复制代码
添加@ResponseBody后,转发和重定向就不生效了
@RestController

@RestController=@ResponseBody+@Controller 
返回静态资源处理

静态资源概念:本身就可以直接拿到浏览器上利用的程度了,不需要在服务器端做任何运算、处理。
资源本身已经是可以直接拿到浏览器上利用的程度了,**不需要在服务器端做任何运算、处理**。典型的静态资源包罗:
- 纯HTML文件
- 图片
- CSS文件
- JavaScript文件等

办理方法:
设置支持找不到handler时去查找有没有对应的静态资源


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南飓风

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表