spring MVC
** spring MVC简介**
M 代表 模型(Model)
模型就是数据,传统的模型层被拆分为了业务层和数据持久层
V 代表 视图(View)
就是网页, JSP,用来展示模型中的数据
C 代表 控制器(controller)
控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。
跟踪Spring MVC请求
用户点击连接后:
1、请求到达DispatcherServlet,Servlet 可以拦截并处理 HTTP 请求,DispatcherServlet 会拦截所有的请求,并且将这些请求发送给 Spring MVC 控制器。
2、处理器映射(HandlerMapping)
DispatcherServlet 会查询一个或多个处理器映射来确定请求的下一站在哪里,处理器映射会根据请求所携带的 URL 信息来进行决策
3、控制器
一旦选择了合适的控制器, DispatcherServlet 会将请求发送给选中的控制器,到了控制器,请求会卸下其负载(用户提交的请求)等待控制器处理完这些信息:
4、返回 DispatcherServlet
当控制器在完成逻辑处理后,通常会产生一些信息,这些信息就是需要返回给用户并在浏览器上显示的信息,它们被称为模型(Model)。仅仅返回原始的信息时不够的——这些信息需要以用户友好的方式进行格式化,一般会是 HTML,所以,信息需要发送给一个视图(view),通常会是 JSP。
控制器所做的最后一件事就是将模型数据打包,并且表示出用于渲染输出的视图名(逻辑视图名)。它接下来会将请求连同模型和视图名发送回 DispatcherServlet。
5、视图解析器
DispatcherServlet 将会使用视图解析器(view resolver)来将逻辑视图名匹配为一个特定的视图实现,它可能是也可能不是 JSP
6、视图
这里它交付模型数据,请求的任务也就完成了。视图使用模型数据渲染出结果,这个输出结果会通过响应对象传递给客户端。
注解
@Controller 注解:辅助扫描
@RequestMapping 注解:@RequestMapping("/hello")表示路径 /hello 会映射到该方法上
@RequestMapping("/updatePaper")
public String updatePaper(Model model, Paper paper) {
paperService.updatePaper(paper);
paper = paperService.queryById(paper.getPaperId());
model.addAttribute("paper", paper);
return "redirect:/paper/allPaper";
}
我们使用
“redirect:/paper/allPaper”;
在地址栏中输入:localhost/updatePaper时,会自动跳转到/allPaper路径下
部分内容转载自
简书ID:@我没有三颗心脏
github:wmyskxz
分布式技术基础:分模块
意义:新建几个子项目 分别放xx层接口,然后打包,在上一层导入这个JAR包,就能用xx层的所有接口,用的多的功能就让其控制层在服务器上多部署几个JAR包或WAR包