SpringMVC小结
一放下就生疏,所以要温故,所以要笔记。
Tip,多数情况下,SpringMVC建议单例执行,Struts2建议多例执行。
原因就在于Struts2使用属性驱动或模型驱动,而SpringMVC则使用方法的形参接收参数。后者的方法在调用后数据就会销毁。
前提一,SpringMVC的执行流程:DispatcherServlet - HandlerMapping - HandlerAdapter - ViewResolver。
其实就是解析Url,调用合适的Handler,处理Handler的返回数据(ModelAndView,查源码可知其本质仍是操作request和response)。
注意,SpringMVC的Handler又叫Controller,概念可类比Struts2的Action。
前提二,SpringMVC的使用有传统代码和注解两种方式。两种方式需要在xml中配置的HandlerMapping和HandlerAdapter是不同的。
前提三,SpringMVC可以开启RESTful风格访问。
前提四,xml配置文件中的标签都有对应的类或接口,所以如果不知道怎么配置,可以查找对应的类或接口。
Handler(Controller)的实现方式:
①(非注解)实现Controller接口;
②(非注解)实现HttpRequestHandler接口;
③(注解)@Controller@RequestMapping@RequestParam@PathVariable等。
非注解方式需要实现接口的方法,每次实现都只能对应一个Controller,不方便,仅作了解即可。
注解方式,灵活多变(方法有多种返回类型,方法返回的数据有多种操作方式),当是最佳选择。
Handler(Controller)中方法的形参类似Struts2中Action的属性或模型,通过不同的形参可以注入不同的对象(如request,pojo等)。
如:
@RequestMapping(value = "/xxx", method = { RequestMethod.POST, RequestMethod.GET }) public String xxx(HttpServletRequest request) throws Exception {request.setAttribute("xxx", xxx);return "abc/xxx";// return "redirect:xxx.action"; //路径是相对于当前方法路径的上一级路径。// return "forward:xxx.action"; //路径是相对于当前方法路径的上一级路径。// 其实就是类内的action。 }
上面就是通过形参注入了request对象,从而可以在方法内部操作该对象。
---------------------------------------------------------------------
SpringMVC已加入了RESTful支持。RESTful是面向资源的架构思想,个人理解:对资源的访问及处理是其重点。
SpringMVC通过以下三点来保证(个人理解):
【】【】@ResponseBody使Controller【直接返回数据】,而不是直接指向具体的视图;同时通过MessageConverter和produces="text/plain;charset=UTF-8"可以返回各种格式的数据(XML,json,RSS,TEXT,字节流等)。
【】【】@ResponseBody就是对应了HTTP协议里的响应体!!!
【】【】ResponseEntity可以认为是ResponseHeader+ResponseBody。
以上三点(直接返回数据而非页面、对应响应体、响应头和响应体),都是针对RESTful风格所需。务必理解啊。
Controller方法直接返回ResponseEntity对象,@ResponseBody将该对象转成符合格式的数据,然后直接返回。
转载于:https://www.cnblogs.com/larryzeal/p/5336042.html
SpringMVC小结相关推荐
- 【SpringMVC框架】小结+视图解析器配置前缀和后缀
1.入门程序小结 通过入门程序理解springmvc前端控制器.处理器映射器.处理器适配器.视图解析器用法. 前端控制器配置: 第一种:*.action,访问以.action结尾 由Dispatche ...
- springmvc个人小结
1.springMVC是什么?他和struts2有什么区别? springMVC和struts2都属于表现层的框架,他是spring框架的一部分. 区别: a) springMVC的入口是servl ...
- spring+springmvc+ibatis整合小结
最近在整合Spring和ibatis时,不管applicationContext.xml放在哪儿,在web.xml中怎么配置,tomcat启动时始终报applicationContext.xml的错. ...
- SpringMVC中@RequestMapping 6个基本用法小结
1)最基本的,方法级别上应用,例如: Java代码 @RequestMapping(value="/departments") public String simplePatt ...
- SpringMVC拦截器-知识小结
拦截器中的方法说明如下
- SpringMvc项目加载顺序及上下文小结
https://www.cnblogs.com/angry-scholar/p/7729052.html
- SpringMVC之请求参数的获取方式
转载出处:https://www.toutiao.com/i6510822190219264516/ SpringMVC之请求参数的获取方式 常见的一个web服务,如何获取请求参数? 一般最常见的请求 ...
- SpringMVC学习(一)———— springmvc框架原理分析和简单入门程序
一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...
- 在web项目中使用SpringMVC
为什么80%的码农都做不了架构师?>>> 什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整个层进行整合, ...
最新文章
- bufferedreader读取中文乱码_Python读取excel的两种方法
- sql join教程
- Java黑皮书课后题第5章:**5.17(显示金字塔)编写程序,提示用户输入一个在1到15之间的整数,然后显示一个金字塔形状的图案
- Visio各图形如何一键自动对齐?
- zookeeper启动失败
- Mysql学习总结(40)——MySql之Select用法汇总
- WebService远程调试
- winform 窗口伸缩 panel控件太多闪烁问题
- 对于目标文件系统,文件过大放不到U盘里
- Cadence PSpice 仿真2: 三极管运放交流小信号仿真图文教程
- 任正非对姚安娜是劝退式支持吗
- word去掉标题前面的黑点
- Grand Prix of Saratov - D. Elevator - DP
- 旺旺打标工具,淘宝搜索打标软件(含旺旺打标API接口)
- mevan 的常用命令和参数解释
- 飞猪大数据:85后带来春节旅行新气氛
- PBRT-v2在windows下的配置与使用
- 元宇宙,现实与虚拟交互的新一代互联网?
- 数据结构(Java实现)-详谈树与二叉树结构
- 在浏览器中直接访问linux服务器中的文件(以图片为例)
热门文章
- 借入单的后续处理-借入归还
- 支撑计算机高速化的半导体技术
- 15个月纪念,开心!
- 5.1 tushare包介绍
- 给字母保密的c语言,C语言练习题
- 云服务器一直显示关机中,云服务器一直提示关机中
- computed get set 传参_ES6 的 Set 与 Map深入理解
- centos网络隔一段时间就断_“路由器隔一段时间就上不了网,断一下电又能用了,这是什么原因...
- 阿里云PolarDB论文入选数据库顶会SIGMOD2021 最新一代架构领先世界
- 阿里云CDN产品经理陈章炜:边缘创新技术和落地实践