SpringMVC(一)

SpringMVC

       SpringMVC简介:      

SpringMVC是Spring提供的一个实现了webMVC设计模式的轻量级web框架。它与Struts2框架一样,都属于MVC框架,但其使用和性能方面比Struts2更优异。

       SpringMVC特点:

  1. 是Spring框架的一部分,可以方便地利用Spring所提供的其他功能
  2. 灵活性强,易于其他框架集成
  3. 提供了一个前端控制器DispatcherServlet,使开发人员无须开发额外的控制器对象
  4. 可自动绑定用户输入,并能正确的转换数据类型
  5. 内置了常见的校验器,可以校验用户输入。如果不能通过,那么就会重定向到输入表单
  6. 支持国际化   可以根据用户区域显示多国语言
  7. 支持多种视图技术  比如:jsp,FreeMarker
  8. 使用基于XML配置文件,在编辑后,不需要重新编译应用程序。

实例代码演示:

      

       编写前端控制器:

      

       编写springmvc的配置文件:

       <!--

      

              首先定义了一个名称为"/firstcontroller"的Bean,该Bean会将控制器类FirstController映射到"/firstcontroller"请求中,

              然后配置了处理器映射器BeanNameUrlHandlerMapping和处理器适配器SimpleControllerHandlerAdapter,其中处理器映射器用

              于将处理器Bena中的name(url)进行处理器查找,而处理器适配器用于完成对FirstController处理器中的handlerRequest()方法的调

              用,最后配置了视图解析器InternalResourceViewResolver来解析结果是,并将结果呈现给用户

             

              注意:在Spring 4.0以后,就不需要配置处理器映射器BeanNameUrlHandlerMapping和处理器适配器SimpleControllerHandlerAdapter

             

        -->

 

       <!-- 配置处理器Handler映射"/firstcontroller"请求 -->

       <bean name="/firstcontroller" class="com.bdqn.cn.controller.FirstController" />

 

       <!-- 处理器映射器,将处理器Hanlder的name作为url查找 -->

       <!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> -->

 

       <!-- 配置处理器适配器,配置对处理器中handlerRequest的调用 -->

       <!-- <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter " /> -->

      

       <!-- 视图解析器 -->

       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />

 

       编写控制器类:

      

             

              Jsp:

             

 

              SpringMVC的工作流程:

             uploading.4e448015.gif转存失败重新上传取消

              解释图中编号含义:

  1. 用户通过客户端向服务器发送请求,请求会被SpringMVC的的前端控制器DispatcherServlet所拦截
  2. DispatcherServlet拦截到请求后,会调用HandlerMapping处理器映射器。
  3. 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器一并返回给DispatcherServlet
  4. DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器)
  5. HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器
  6. Controller执行完毕后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名
  7. HandlerAdapter将ModelAndView对象返回给DispatcherServlet
  8. DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)。
  9. ViewReslover解析后,会向DispatcherServlet中返回具体的View(视图)
  10. DispatcherServlet对View进行渲染(即将模型数据填充至视图中)
  11. 视图渲染结果会返回给客户端浏览器显示。

关于web.xml配置文件的详解:

uploading.4e448015.gif转存失败重新上传取消

              在上述代

码中,<load-on-startup>元素和<init-param>元素都是可选的,如果<load-on-startup>元素的值为1,则在应用程序启动时会立即加载该Servlet;如果<load-on-startup>元素不存在,则应用程序会在第一个Servlet请求时加载该Servlet。如果<init-param>元素存在并且通过其子元素配置了SpringMVC配置文件的路径,则应用程序在启动时会加载配置路径下的配置文件;如果没有<init-param>元素配置,则应用程序会默认到WEB-INF目录下寻找如下命名方式的配置文件:servletName-servlet.xml

       这个servletName指的是部署在web.xml中的DispatcherServlet的名称,在上面web.xml中的配置代码即为Springmvc,- servlet.xml是配置文件的固定写法,所以当前程序中应用程序会在WEB-INF下寻找springmvc-servlet.xml

# demoWeb 一个基于SpringMVC的web框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用 1.1.11 集成Spring Cache,FastJson Spring Cache增加redis缓存实现 Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper doc内有相关文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值