SpringMvc初步学习

SpringMVC架构说明

1、什么是SpringMvc ?

使用 Spring可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用SpringSpringMVC框架或集成其他MVC开发框架,如Struts1Struts2等。

SpringMvc是Spring框架的一个模块,SpringMvc和Spring无需通过中间整合层进行整合,SpringMcv是一个基于Mvc的Web框架,

2、MVC 在b/s系统下的应用

MVC 是一种使用 MVCModel ViewController模型-视图-控制器)设计创建 Web应用程序的模式:

·            Model(模型)表示应用程序核心(比如数据库记录列表)。

·            View(视图)显示数据(数据库记录)。

·            Controller(控制器)处理输入(写入数据库记录)。

SpringMvc初步学习_第1张图片

  

 

3、SpringMvc架构及组件

 

1.      发起请求到前端控制器DispatcherServlet

2.      前端控制器请求到HanderMapping查找Handler,可以根据xml配置,注解进行查找

3.      处理器映射器HandlerMapping向前端控制器返回Handler

4.      前端控制器调用适配器去执行Handler

5.      处理器适配器去执行Handler

6.      Handler执行完成给适配器返回ModelAndView

7.      处理器适配器向前端适配器返回ModelAndView,ModelAndView是springMVc框架的一个底层对象,包括Model和View

8.      前端控制器请求视图解析器进行试图解析,根据逻辑视图名解析成真正的视图(jsp)

9.      视图解析器向前端控制器返回View

10.  前端控制器进行视图渲染;视图渲染将模型数据(在ModelAndView对象中)填充到request域

11.  前端控制器向用户响应

组件:

1.      前端控制器DispatcherServlet:作用>接收请求,响应结果,相当于转发器,中央处理器,

减少了其他组件之间的耦合度

2.      处理器映射器HandlerMapping:作用>根据请求的Url查找Handler

3.      处理器适配器HandlerAdapter:作用>按照特定规则(HandlerAdapte要求的规则)去执行Handler

4.      处理器Handler(需要程序员开发的)

注意:编写Handler时要按照HandlerAdapter的要求去做,这样适配器才能正确执行Handler

5.视图解析器View resolver :作用:进行试图解析,根据逻辑视图名解析成真正的视图(在Springmvc中View)

6.视图View(需要开发View类型)

是一个接口,实现类支持不同的View类型(jsp.freemarker.pdf..)

SpringMvc初步学习_第2张图片

 

搭建SpringMvc框架

1.创建maven项目,并且添加spring各种依赖

   2.在web.xml中配置总的控制器

控制器的类是dispatcherServlet(注意此处控制器的名称:此控制器在启动的时候需要加载此控制器的配置文件,默认时在WEB-INF在寻找和此处配置控制器名称相匹配的mvc-servlet.xml文件);  但是在实际开发中根据不同模块或者职能来加载不同的配置文件,所以在此处按照初始化的方式来做配置,并且属性名称必须是contextConfigLocation,在然后配置寻找路径,可以配置在/WEB-INF/classes/serclet.xml(所有的    源文件编译后均是在此目录),如果有多个配置文件可以加上,文件名。最后在加上load-on-statup以便系统启动的时候此 控制器启动

3.配置映射,

决定什么样的请求转发到总的控制器并且配置CharacterEncodingFilter来解决Post提交方式造成的中文乱码

4.创建spring配置文件

并且配置上下中主键扫描的标签,加载配置文件时来读取和分析注解  ,定义视图解析类,InternalResourceViewResolver主要支持jsp和jstl技术(是基于url解析器的扩展),对模型视图配置前后缀

 5.创建一个简单的控制器

注解的时候不用实现接口,直接使用框架的注解,@controller说明这是一个控制器,并且定义类路径 @RequestMapping("/portal/task"),创建方法利用注解@RequestMapping(value="/init")来说明请求映射,相当于不使用注解中的handlerMappering,  注解中的值便是路径

 5-1参数传递    

(1)普通参数传递 

1.在请求路径中加入参数,controller层利用request.getParameter来获取  http://localhost:8080/ZhouQi/userController/index.do?name=zhangsan

  2.spring3.0中restful风格

把请求的参数写在请求路径中,使用这种方法首先要定义url模板,指明路径的可变部分,   http://localhost:8080/ZhouQi/userController/index/zhangsan.do    ,定义模板的时候是在controlle方法的注解中定义,如:@RequestMapping(value="/taskDetailInit/{id}"),并且在方法中配置路径变量:@PathVariable String id,参数的名称必须和模板中的名称一致

 5-2不同的请求方法映射不同的处理方法

 在方达参数中,添加method = RequestMethod.POST为POST方法,同理是get(这里方法的路径value不可以忽略)

 

maven+mysql        下载地址:http://download.csdn.net/detail/yjaspire/9653923

oracle+下载好的jar+easyui      下载地址:http://download.csdn.net/detail/yjaspire/9606292

你可能感兴趣的:(spring相关)