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

贵州国龙翔建设有限公司网站今科网站建设

贵州国龙翔建设有限公司网站,今科网站建设,个人网站排版设计,福州seo博客SpringMVC学习记录(三)之响应数据 一、页面跳转控制1、快速返回模板视图2、转发和重定向 二、返回JSON数据1、前置准备2、ResponseBody 三、返回静态资源1、静态资源概念2、访问静态资源 /*** TODO: 一个controller的方法是控制层的一个处理器,我们称为h…

SpringMVC学习记录(三)之响应数据

  • 一、页面跳转控制
    • 1、快速返回模板视图
    • 2、转发和重定向
  • 二、返回JSON数据
    • 1、前置准备
    • 2、@ResponseBody
  • 三、返回静态资源
    • 1、静态资源概念
    • 2、访问静态资源

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

请求数据接收,是通过handler的形参列表接收的。前端数据响应,是通过handler的return关键字快速处理!

springmvc简化了参数接收和响应!

一、页面跳转控制

1、快速返回模板视图

  1. 准备jsp页面和依赖
<!-- jsp需要依赖! jstl-->
<dependency><groupId>jakarta.servlet.jsp.jstl</groupId><artifactId>jakarta.servlet.jsp.jstl-api</artifactId><version>3.0.0</version>
</dependency>
  1. jsp页面创建
    建议位置:/WEB-INF/下,避免外部直接访问!
    位置:/WEB-INF/views/home.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>Title</title></head><body><!-- 可以获取共享域的数据,动态展示! jsp== 后台vue -->${msg}</body>
</html>
  1. 配置jsp视图解析器
@EnableWebMvc  //json数据处理,必须使用此注解,因为他会加入json处理器
@Configuration
@ComponentScan(basePackages = "com.atguigu.controller") //TODO: 进行controller扫描//WebMvcConfigurer springMvc进行组件配置的规范,配置组件,提供各种方法! 前期可以实现
public class SpringMvcConfig implements WebMvcConfigurer {//配置jsp对应的视图解析器@Overridepublic void configureViewResolvers(ViewResolverRegistry registry) {//快速配置jsp模板语言对应的registry.jsp("/WEB-INF/views/",".jsp");}
}
  1. handler返回视图

跳转到提交文件页面 /save/jump

/***  跳转到提交文件页面  /save/jump*  *  如果要返回jsp页面!*     1.方法返回值改成字符串类型*     2.返回逻辑视图名即可    *         <property name="prefix" value="/WEB-INF/views/"/>*            + 逻辑视图名 +*         <property name="suffix" value=".jsp"/>*/
@GetMapping("jump")
public String jumpJsp(Model model){System.out.println("FileController.jumpJsp");model.addAttribute("msg","request data!!");  //将数据保存到数据共享作用域中return "home";
}

2、转发和重定向

在 Spring MVC 中,Handler 方法返回值来实现快速转发,可以使用 redirect 或者 forward 关键字来实现重定向。

@RequestMapping("/redirect-demo")
public String redirectDemo() {// 重定向到 /demo 路径 return "redirect:/demo";
}@RequestMapping("/forward-demo")
public String forwardDemo() {// 转发到 /demo 路径return "forward:/demo";
}//注意: 转发和重定向到项目下资源路径都是相同,都不需要添加项目根路径!填写项目下路径即可!

总结:

  • 将方法的返回值,设置String类型
  • 转发使用forward关键字,重定向使用redirect关键字
  • 关键字: /路径
  • 注意:如果是项目下的资源,转发和重定向都一样都是项目下路径!都不需要添加项目根路径!

二、返回JSON数据

1、前置准备

导入jackson依赖

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.0</version>
</dependency>

添加json数据转化器 @EnableWebMvc

//TODO: SpringMVC对应组件的配置类 [声明SpringMVC需要的组件信息]//TODO: 导入handlerMapping和handlerAdapter的三种方式//1.自动导入handlerMapping和handlerAdapter [推荐]//2.可以不添加,springmvc会检查是否配置handlerMapping和handlerAdapter,没有配置默认加载//3.使用@Bean方式配置handlerMapper和handlerAdapter
@EnableWebMvc  //json数据处理,必须使用此注解,因为他会加入json处理器
@Configuration
@ComponentScan(basePackages = "com.atguigu.controller") //TODO: 进行controller扫描//WebMvcConfigurer springMvc进行组件配置的规范,配置组件,提供各种方法! 前期可以实现
public class SpringMvcConfig implements WebMvcConfigurer {}

2、@ResponseBody

可以在方法上使用 @ResponseBody注解,用于将方法返回的对象序列化为 JSON 或 XML 格式的数据,并发送给客户端。在前后端分离的项目中使用!
(注意区分@ResponseBody@RequestBody

@GetMapping("/accounts/{id}")
@ResponseBody
public Object handle() {// ...return obj;
}

具体来说,@ResponseBody 注解可以用来标识方法或者方法返回值,表示方法的返回值是要直接返回给客户端的数据,而不是由视图解析器来解析并渲染生成响应体(viewResolver没用)。

@RequestMapping(value = "/user/detail", method = RequestMethod.POST)
@ResponseBody
public User getUser(@RequestBody User userParam) {System.out.println("userParam = " + userParam);User user = new User();user.setAge(18);user.setName("John");//返回的对象,会使用jackson的序列化工具,转成json返回给前端!return user;
}

如果类中每个方法上都标记了 @ResponseBody 注解,那么这些注解就可以提取到类上。

@ResponseBody  //responseBody可以添加到类上,代表默认类中的所有方法都生效!
@Controller
@RequestMapping("param")
public class ParamController {
}

类上的 @ResponseBody 注解可以和 @Controller 注解合并为 @RestController 注解。

//@ResponseBody  
//@Controller
@RestController //  @ResponseBody @Controller 合二为一
@RequestMapping("param")
public class ParamController {
}

三、返回静态资源

1、静态资源概念

资源本身已经是可以直接拿到浏览器上使用的程度了,不需要在服务器端做任何运算、处理。典型的静态资源包括:

  • 纯HTML文件
  • 图片
  • CSS文件
  • JavaScript文件
  • ……

web应用加入静态资源
在这里插入图片描述

2、访问静态资源

在这里插入图片描述

  • 问题分析

    • DispatcherServlet 的 url-pattern 配置的是“/”
    • url-pattern 配置“/”表示整个 Web 应用范围内所有请求都由 SpringMVC 来处理
    • 对 SpringMVC 来说,必须有对应的 @RequestMapping 才能找到处理请求的方法
    • 现在 images/mi.jpg 请求没有对应的 @RequestMapping 所以返回 404
  • 问题解决

    • 在 SpringMVC 配置配置类:
@EnableWebMvc  //json数据处理,必须使用此注解,因为他会加入json处理器
@Configuration
@ComponentScan(basePackages = "com.atguigu.controller") //TODO: 进行controller扫描
//WebMvcConfigurer springMvc进行组件配置的规范,配置组件,提供各种方法! 前期可以实现
public class SpringMvcConfig implements WebMvcConfigurer {//配置jsp对应的视图解析器@Overridepublic void configureViewResolvers(ViewResolverRegistry registry) {//快速配置jsp模板语言对应的registry.jsp("/WEB-INF/views/",".jsp");}//开启静态资源处理 <mvc:default-servlet-handler/>@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();}
}

现在,我们的静态图片就可以正常访问了。

http://www.sczhlp.com/news/64644/

相关文章:

  • 成都网站建设app开发做淘宝网站用什么软件有哪些
  • 百度收录网站收费吗做电影分享网站违法吗
  • 上海网站设计公司推荐亿企邦唐山市建设局网站
  • 高端制作网站公司外贸网络推广公司排名
  • 成都php网站开发wordpress获取当前分类名
  • 杭州专业做网站网络营销推广的常用方法有哪些
  • 亚马逊商标备案是否必须做网站装修预算
  • seo怎么做网站的tdk打开小程序入口直接进入
  • 龙岗网站优化公司案例wordpress实现静态化
  • 达梦数据库高可用集群部署方案
  • 2023年游戏开发最佳笔记本电脑Top 10:性能与性价比全面解析
  • 南通网站流量优化学编程的好处
  • 做网站好的网站建设公司qq钓鱼网站制作
  • 好网站建设公司哪里好网站桥页怎么找
  • 自助建站系统凡科好的策划方案网站
  • 从零做网站模板郓城建设局网站
  • k网站建设做信息类网站怎么赚钱
  • 宁波教育学会网站建设wordpress win2003
  • 学网站建设有什么用知名建筑设计网站
  • 黄页网站软件下载免费app什么是新闻源网站
  • Canvas 2D的性能警告willReadFrequently(非必要情况下不传true,严重影响渲染效率)
  • (13)如何创建目录和文件
  • 四川二滩建设咨询有限公司网站wordpress 标签链接
  • 制作软件网站wordpress wp.media
  • 网站后台模板 免费wordpress图片轮播插件下载
  • 网站建设选择本地东莞建设网站官网住房和城乡资料
  • 社交网站页面设计杭州企业网站seo
  • 网站由哪儿三部分组成昆明设计公司排行榜
  • C#工作流示例(WorkflowCore)
  • 四平网站建设邢台手机网站建设价格