提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
SSM框架中包含了 Spring、SpringMVC以及mybatis,今天就浅说一下SpringMVC吧。
提示:以下是本篇文章正文内容,下面案例可供参考
一、SpringMVC是什么?
MVC
:
MVC
是一种设计模式
MVC
的原理图:
MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,业务模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M 和 V 的实现代码分离,使同一个程序可以有不同的表现形式。其中,View 的定义比较清晰,就是用户界面.
在学习 Servlet 及 JSP 开发时,JavaBean 相当于 Model,Servlet 相当于 Controller,JSP 相当于 View。
分析:
M-Model
模型(完成业务逻辑:有
javaBean
构成,
service+dao+entity
)
V-View
视图(做界面的展示
jsp
,
html……
)
C-Controller
控制器(接收请求
—>
调用模型
—>
根据结果派发页面)
springMVC
是一个
MVC
的开源框架,
springMVC=struts2+spring
,
springMVC
就相当于是
Struts2
加上
sring
的整合,但是这里有一个疑惑就是,
springMVC
和
spring
是什么样的关系呢?这个在百度
百科上有一个很好的解释:意思是说,
springMVC
是
spring
的一个后续产品,其实就是
spring
在原
有基础上,又提供了
web
应用的
MVC
模块,可以简单的把
springMVC
理解为是
spring
的一个模块
(类似
AOP
,
IOC
这样的模块),网络上经常会说
springMVC
和
spring
无缝集成,其实
springMVC
就是
spring
的一个子模块,所以根本不需要同
spring
进行整合。
工作原理:
二、常用注解
1.@RequestMapping
的所有响应请求的方法都是以该地址作为父路径。
用在方法上:
//转发HttpServletRequest
@RequestMapping("f1")
public void test01(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("这是一个方法");
req.getRequestDispatcher("/index.jsp").forward(req,resp);
}
用在类上:
@RequestMapping("fr")//前缀
public class FRController {
System.out.println("这是一个类");
}
2.@RequestBody
@RequestBody注解实现接收http请求的json数据,将json转换为java对象:
@ResponseBody//返回值转换成json格式
public User test02(@RequestBody User user){
System.out.println("user = " + user);
return user;
}
3.@ResponseBody
该注解实现将
conreoller
方法返回对象转化为
json
对象响应给客户
总结
MVC设计模式总结如下:
-
视图层(View):负责格式化数据并把它们呈现给用户,包括数据展示、用户交互、数据验证、界面设计等功能。
-
控制层(Controller):负责接收并转发请求,对请求进行处理后,指定视图并将响应结果发送给客户端。
-
数据模型层(Model):模型对象拥有最多的处理任务,是应用程序的主体部分,它负责数据逻辑(业务规则)的处理和实现数据操作(即在数据库中存取数据)