springMVC中的东东

一、 MVC的简介
1、 Front Controller(mvc的一种设计模式)前端控制器
② 用户端请求通过http协议到达我们的前端控制器
②:前端控制器将业务请求代理给了控制器(controller)
③ controller调用业务逻辑生成业务数据,并将这部分业务数据返还给前端控制器
④ 前端控制器再将这部分业务数据分发给业务视图,
⑤ 由业务视图呈现业务界面,再将呈现好的业务界面返还给前端控制器
⑥ 最终,前端控制器将业务界面返还给浏览器端,此时就可以给用户呈现界面
2、 MVC的本质
MVC的核心思想:业务数据抽取同业务数据呈现相分离
3、 MVC的概念
Model-view-controller
View:视图层,他为用户提供UI重点关注数据的呈现
Model:模型层,业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合
Controller:控制层,通过调用合适的数据(model)传递数据给视图层用于呈现
4、 什么是MVC
① :MVC是一种架构模式
程序分层,分工合作,即相互独立,又相互协作
② :MVC是一种思考方式
需要将什么信息展示给用户,如何布局,调用那些业务逻辑

二、springMVC基本概念
1、 DispatcherServlet为springMVC的前端控制器,我们的前端(即用户请求)就是通过DispatcherServlet来分发消息到达合适的controller来生产我们业务数据module,module再通过DispatcherServlet传递给view用来用户呈现
2、 Controller调用业务逻辑生产module的地方
3、 HandleAdapter,handler为DispatcherServlet,其实就是controller的一种表现形式,在DispatcherServlet调用那个controller最初是在handlerAdapter中实现的
HandleAdapter:为一个适配器,既将不同类型的handler适配DispatcherServlet可识别的片段,这样我们的DispatcherServlet可以很轻松的调用我们的控制器
4、 handlerInterceptor:为拦截器,目的为在我们被拦截的两次加入一些东东
5、 handlerMapping:
1、 help DispatcherServlet to get the right controller
2、 Wrap controller with HandlerInterceptor
3、 HandlerMapping实现原理,通过扫描annotation对应的包,所有的文件,寻找路径,将路径与文件名存放到一个map中,当dispatcherServlet寻找controller时,可以很快的找到对应的controller,其中map中的key值是唯一的,所有定义的路径也需要唯一性
6、 handlerExecutionchain
preHandle->controller method->postHandle->afterCompletion
7、 ModulAndView:modul的具体表现
8、 ViewResolver
Help DispatcherServlet to Resolve the right view to render page
9、 view
Responsile for the page

业务流程:
1、 DispatcherServlet 拦截到一个请求之后,寻找对应的controller—handlermapping,将此功能代理给了handlemapping
2、 Handlermapping很容易的找到了我们的controller,对应的handlerinterceptor
3、 Controller及handlerinterceptor组成了一个执行链条(handlerchain)即handleradapter返回给我们的dispatcherservlet
4、 Dispatcherservlet将业务数据传给modelandview,为我们的视图模型生成一些料,后返回给dispatcher
5、 Dispatcherservlet通过调用viewResolve(视图解析器)返回一个view对象
6、 我们的model总的模型数据传递给view完成我们的呈现,这时候就能在页面上看到界面了
三、maven管理工具
1、 POM(project object model)
主要是配置文件(pom.xml)
2、 Dependency Management依赖管理
项目依赖的jar包可能还依赖于其他jar包实现,在不使用maven的程序中我们不仅需要管理直接依赖的jar包,还需要关注简介的jar包,使得依赖及其繁琐,maven帮我们管理这些
3、 Coordinates坐标
Groupid,artifactid,version,packaging 通过这几个坐标我们可以唯一标示一个jar包
四、springMVC实操
1、 在idea中创建maven项目
2、 在pom.xml文件中添加项目所需依赖
3、 配置web.xml文件

mvc-dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/configs/spring/mvc-dispatcher-servlet.xml 1 mvc-dispatcher / 添加拦截,拦截根目录下的所有文件 4、 配置mvc-dispatcher-servlet.xml

mvc:annotation-driven/

<mvc:resources mapping="/resources/**" location="/"/>

5、创建HelloMVCController 添加@Controller 告诉spring自己为controller层级@RequestMapping("/hello")由根目录下“/hello”引入 6、 创建方法helloMVC() 添加@RequestMapping("/mvc")在进入(“hello”)后进入 Return “home”,对应mvc-dispatcher-servlet.xml中ViewResolver页面 7、 通过页面访问,测试联通性:localhost:8080/hello/mvc 8、 创建applicationContext.xml 五、binding数据绑定 通过@ModelAttribute on mothed用来绑定数据 通过redirect/forward做重定向 六、fileupload 单文件上传 ①:配置springMVC.xml 文件配置multipartResolver ②:controller中添加showUpload方法, ③:在页面上的form表单添加这一属性 enctype="multipart/form-data" ④:添加成功后的页面,success, 七、 JSON数据格式 work with json ①: json is a lightweight data-interchange format轻量级数据交换格式 ②:json和html都是数据传输的一种表现形式 ③:springMVC通过viewResolver来处理这种相同数据不同呈现方式的数据格式 HTML格式的数据viewresolver将数据代理给了jspview json格式的数据viewresolve将数据代理给了jsonview ④:在controller中添加方法,通过两种方式传递参数 在返回参数前加@ResponseBody 或者通过ResponseEntity将参数传出去
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值