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

Spring MVC入门补充2

学习Spring MVC

        响应

        Http响应结果可以是数据,也可以是静态⻚⾯,也可以针对响应设置状态码,Header信息等.

        返回静态页面
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Index⻚⾯</title>
</head>
<body>
Hello,Spring MVC,我是Index⻚⾯.
</body>
</html>
@RequestMapping("/response")
@RestController
public class Response {@RequestMapping("/index")public String index() {return "/index.html";}
}

        如果使用上述代码直接进行访问,会发现实际的响应是"/index.html"字符串,而不是这个页面.

        想要返回页面就要将注释中的@RestController替换为@Controller.再次运行,结果正常.

@Controller
public class Response {@RequestMapping("/index")public String index() {return "/index.html";}
}

        @RestController与@Controller

        点进@RestController的源码,发现@RestController是由@Controller与@ResponseBody修饰的.

        

        随着互联⽹的发展,⽬前项⽬开发流⾏"前后端分离"模式,Java主要是⽤来做后端项⽬的开发,所以也就不再处理前端相关的内容了.MVC的概念也逐渐发⽣了变化,View不再返回视图,⽽是返回显示视图时需要的数据.而@RestController就是现在概念中的返回数据,@Controller就是之前概念中的返回视图.

        简单的理解为RestController =@Controller+@ResponseBody.@Controller: 定义⼀个控制器,Spring框架启动时加载,把这个对象交给Spring管理,默认返回视图.@ResponseBody:定义返回的数据格式为非视图,返回⼀个text/html信息.

        @ResponseBody既可以修饰类,也可以修饰方法.当修饰类时,表示该类的所有⽅法,返回的都是数据,如果修饰⽅法,表⽰该⽅法返回的是数据.

        返回HTML代码片段

        返回数据时,如果数据中包含HTML片段,也会被浏览器解析.

    @RequestMapping("/returnHtml")@ResponseBodypublic String returnHtml() {return "<h1>Hello,HTML~</h1>";}

        返回JSON

        后端⽅法返回结果为对象,SpringMVC就会把对象内容转化为JSON格式.

    @ResponseBody@RequestMapping("/returnJSON")public Map<String,String> returnJSON() {Map<String,String> map = new HashMap<String,String>();map.put("k1","v1");map.put("k2","v2");map.put("k3","v3");return map;}

        

                设置状态码

        Spring MVC会根据方法返回的结果自动设置响应的状态码,程序员也可以自己设置响应的状态码.418状态码的含义为:I'm a teapot.

    @RequestMapping("/setStatus")@ResponseBodypublic String setStatus(HttpServletResponse response) {response.setStatus(418);return "设置状态码完成";}

   

http://www.dtcms.com/a/482624.html

相关文章:

  • 石家庄站列车时刻表美食网站二级页面模板
  • GS016电动工具调速控制电路
  • Gartner:AI增强软件测试工具魔力象限报告精编(2025年10月)
  • 绵阳公司商务网站制作沈阳企业网站制作公司
  • elasticsearch-8.12.2集群部署
  • 【教程】增强版 print 函数,支持彩色与样式化终端输出
  • Python下载实战技巧技术文章大纲
  • TCP 拆包现象解决方案(一)
  • 陕西省城乡建设学校网站网页设计图片加载不出来
  • 商业智能BI与业务结构分析
  • 视频融合平台EasyCVR助力构建智慧园区的“视觉中枢”与“智能引擎”
  • 基于python+Java的二手车与奔驰销量数据可视化平台
  • 网站返回顶部怎么做制作企业网站页面实训报告
  • 基于ArcGIS的作物适宜区分析案例 | 当GIS化身农科月老
  • 贵阳网站建设开发开发区二手房
  • SpringCloud中的网关(Gateway)的作用是什么?
  • 联想笔记本电脑Y7000P更换电池后引发CPU锁0.78GHz问题修复记录
  • 大良网站建设中国企业网控股有限公司
  • 德州 网站建设购物车 信息技术分院网站后台设计课题组
  • 用iis 匿名访问windows 上的sql server数据库
  • Eclipse MyEclipse MyEclipseCI 安装SVN插件及使用说明
  • 怎样自己做网络推广网站怎么上传网站数据库
  • DRW项目kaggle竞赛回归方案二
  • 微信小程序怎么做网站链接网站建设公司比较
  • 网站制作电话多少钱wordpress主题技术网
  • diplexer与duplexer
  • 【项目案例】使用project制作项目计划
  • 深入理解连接跟踪(conntrack)
  • PyTorch 张量学习
  • Network Radar for Mac 网络扫描管理软件