springmvc框架

SpringMVC配置实例

戏子无情 提交于 2020-01-09 05:49:56
一.SpringMVC概述 MVCII模式实现的框架技术 Model--业务模型(Biz,Dao...) View--jsp及相关的jquery框架技术(easyui) Contraller--DispatcherServlet以及控制器组件 二.控制器组件 1).DispatherServlet 2).xxx-servlet.xml文件 3).转向模型ModelAndView类 4).相应的Aop组件和拦截器组件 三.springMvc的开发步骤 1.在当前工程引入spring组件包 2.编写实体类以及业务类 3.编写控制器类 4.配置xxx-servlet.xml文件 5.在web.xml中配置spring的启动和中文转码的过滤器 6.在applicationContext.xml中配置注解扫描包 四.springMVC的运行流程 1).用户请求传递给DispatcherSevlet(请求路径通过@RequestMapping进行配置) 2).DispatcherSevlet将请求转发给动作模型(控制器组件) 3).动作模型开始处理用户请求的数据(调用业务模型进行处理) 4).根据业务模型处理的结果通过ModelAndView组件将响应的目标路径传递给客户端 顺便贴个图(这个图是从一个叫“java我人生”的博客拿过来的)个人觉得很好。 五

SpringMVC源码解析-DispatcherServlet启动流程和初始化

[亡魂溺海] 提交于 2020-01-09 01:29:19
在使用springmvc框架,会在web.xml文件配置一个DispatcherServlet,这正是web容器开始初始化,同时会在建立自己的上下文来持有SpringMVC的bean对象。 先从DispatcherServlet入手,从名字来看,它是一个Servlet。它的定义如下: public class DispatcherServlet extends FrameworkServlet { 它是继承FrameworkServlet,来看一下整个的继承关系。 从继承关系来看,DispatcherServlet继承FrameworkServlet和HttpServletBean而继承HttpServlet,通过使用Servlet API 来对HTTP请求进行响应,成为SpringMVC的前端处理器。 先看一个时序图 注:作为Servlet,DispatcherServlet的启动和Servlet的启动相关联的。在Servlet初始化过程中,Servlet的init方法会被调用,以进行初始化,然而DispatcherServlet的基类,所以从HttpServletBean中的初始化过程开始。 DispatcherServlet的工作分为2部分,一部分是初始化(也就是图的上半部分),有initServletBean()启动,通过initWebApplicationContext(

SpringMVC的孪生兄弟WebFlux

笑着哭i 提交于 2020-01-08 20:58:38
一、入门文字介绍 官方口水话简短翻译:   Spring WebFlux是一个非阻塞的Web框架,用于利用多核,短时间可一处理大量并发连接。 非阻塞式   在servlet3.1提供了非阻塞的API,WebFlux为之有自己的一套手段,   使用非阻塞的方式可以利用 较小的线程或硬件资源 来 处理并发 函数式编程端点   Spring5必须配备java8,函数式编程就是java8重要的特点之一,   WebFlux支持函数式编程来定义路由端点处理请求。 二、入门小Demo Test   创建一个Spring Boot项目,版本要求2.0以上,需要下面的依赖,Spring Reactive Web 替代了Web依赖        看看我们的处理器:Controller     抽一个方法出来,待会儿会使用到,这个方法假如就是我们一个比较耗时的逻辑操作            然后看我们的处理器 @Slf4j @RestController              我们定义了两个处理器,一个就是普通的处理器,一个是使用了WebFlux的处理器,       然后我们观察我们的控制台日志情况:        ... 有没有发现什么一样,当然我们的页面都是一样的,需要在五秒后才会有结果,但是你观察控制台 发现下面那个打印的时间间隔很短有没有,并没有像上面那个一样等待五秒才打印

SpringMVC

烂漫一生 提交于 2020-01-08 13:45:26
http://www.xxx.com?id=&type= Model:将传输数据封装成一个完整的整体 View:视图,用来展示或者输出的一个模块(HTML,JS,JSON,String,Swing,xml。。。 ) Control:控制交互的一个中间组件,由他来根据用户请求分发不同任务从而得到不同的结果 三者合在一起就叫做MVC,基于项目开发的设计模式,用来解决用户和后台交互的问题 J2EE标准,JSP页面是一个万能组件,可以写HTML,可以写JS,写java逻辑,写sql语句 MVC框架:Struts1,Struts2,WebWork,SpringMVC SpringMVC只是MVC设计模式的应用典范,给MVC的实现制定了一套标准 M:支持将url参数自动封装成一个Object或者Map V:自己只有一个默认的template,支持扩展,自定义View,而且能够自定义解析 C:能够把限制放宽了,任何一个类,都有可能是Controller 在dispatcherServlet中onRefresh方法 protected void onRefresh(ApplicationContext context) { initStrategies(context); } /** * Initialize the strategy objects that this servlet uses.

SpringMVC加载流程

隐身守侯 提交于 2020-01-07 22:57:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>  这节介绍SpringMVC,SpringMVC是一种基于Java的实现MVC设计模式的请求驱动类型的轻量级Web框架。本章会介绍相关概念,流程,再从源码进行讲解。 1. MVC  MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。MVC框架模式是一种复合模式,MVC的三个核心部件分别是 Model(模型):所有的用户数据、状态以及程序逻辑,独立于视图和控制器 View(视图):呈现模型,类似于Web程序中的界面,视图会从模型中拿到需要展现的状态以及数据,对于相同的数据可以有多种不同的显示形式(视图) Controller(控制器):负责获取用户的输入信息,进行解析并反馈给模型,通常情况下一个视图具有一个控制器 2. SpringMVC流程  基本上大家都会在网上看到这张图: 这个图描述了SpringMVC处理一个Http请求的基本流程,对应的流程为: 用户发送请求至前端控制器DispatcherServlet。 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)

SpringMVC Maven项目 java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServl

。_饼干妹妹 提交于 2020-01-06 20:20:09
今天在搭建SpringMVC开发框架时,遇到了一个问题,尽管在maven的POM.xml文件中配置了项目所依赖的jar包,但在启动项目是已然报错如下: 复制代码 信息: Starting Servlet Engine: Apache Tomcat/7.0.56 十一月 27, 2017 3:19:14 下午 org.apache.catalina.util.SessionIdGenerator createSecureRandom 信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [187] milliseconds. 十一月 27, 2017 3:19:14 下午 org.apache.catalina.core.ApplicationContext log 信息: Marking servlet springmvc as unavailable 十一月 27, 2017 3:19:14 下午 org.apache.catalina.core.StandardContext loadOnStartup 严重: Servlet /CRM threw load() exception java.lang.ClassNotFoundException: org

PlayJava SpringMVC与Struts2杂谈

徘徊边缘 提交于 2020-01-06 19:10:30
一 先做一个简单对比: 1. SpringMVC的入口是Servlet,核心是DispatcherServlet,Struts2是Filter,核心是FilterDispatcher 2. SpringMVC应当会比Struts2稍微快些。SpringMVC是基于方法设计,Struts2是基于类,即每发一次请求都会实例一个Action 3. SpringMVC使用相对简洁一些,支持JSR303,处理ajax请求更加方便,开发效率应当会比Struts2要高些 4. Struts2的OGNL表达式使页面的开发效率相比SpringMVC更高些 二 Struts2的核心控制器是FilterDispatcher,在Struts1系列版本中,所有的请求是通过一个Servlet(ActionServlet)来管理控制的,在Struts2系列版本中是经过一个Filter来处理请求的。Struts2选择Filter而不是Servlet来设计核心控制器,是为了实现AOP思想。 Struts1.x的配置: <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> ...... </servlet> Struts2.x的配置:

SpringMVC - 静态资源放行

喜你入骨 提交于 2020-01-06 17:48:58
什么是静态资源? css、js、图片、html等都是静态资源 放行静态资源 1、不使用 springmvc 框架分析 不使用 springmvc 框架,这些静态资源请求都会由 tomcat 的默认的 default 进行处理。 2、使用了 springmvc 框架分析 当配置的 DispatcherServlet 的映射路径不为 / 时,对静态资源的请求最终会由 tomcat 的默认配置来处理,所以不影响静态资源的正常访问。 如果配置的 DispatcherServlet 的映射路径为 / 时,会覆盖掉tomcat的默认的 default 配置,所以需要在 springmvc 文件中进行配置,对静态资源进行放行。 一、在 springmvc.xml 中放行 - 需要开启 <mvc:annotation-driven /> 注解驱动 1、对全部资源放行 在springmvc文件中配置上 <mvc:default-servlet-handler/> ,发出静态资源请求后,请求传到 DispatcherServlet,DispatcherServlet 调用 RequestMappingHandlerMapping 进行映射匹配,匹配不成功,DispatcherServlet 最终会将请求转交给 tomcat 默认 default 进行处理。 <mvc:default-servlet

SpringMVC - 静态资源放行

早过忘川 提交于 2020-01-05 23:50:12
什么是静态资源? css、js、图片、html等都是静态资源 放行静态资源 1、不使用 springmvc 框架分析 不使用 springmvc 框架,这些静态资源请求都会由 tomcat 的默认的 default 进行处理。 2、使用了 springmvc 框架分析 当配置的 DispatcherServlet 的映射路径不为 / 时,对静态资源的请求最终会由 tomcat 的默认配置来处理,所以不影响静态资源的正常访问。 如果配置的 DispatcherServlet 的映射路径为 / 时,会覆盖掉tomcat的默认的 default 配置,所以需要在 springmvc 文件中进行配置,对静态资源进行放行。 一、在 springmvc.xml 中放行 - 需要开启 <mvc:annotation-driven /> 注解驱动 1、对全部资源放行 在springmvc文件中配置上 <mvc:default-servlet-handler/> ,发出静态资源请求后,请求传到 DispatcherServlet,DispatcherServlet 调用 RequestMappingHandlerMapping 进行映射匹配,匹配不成功,DispatcherServlet 最终会将请求转交给 tomcat 默认 default 进行处理。 <mvc:default-servlet

新接触springmvc框架,在整合mybatis和spring框架时,出现了自动注入失败的情况

拥有回忆 提交于 2020-01-05 17:55:50
严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mycontroller': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private dh.perfect.Services.queryServices dh.perfect.controller.Mycontroller.queryservices; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [dh.perfect.Services.queryServices] found for dependency: expected at least 1 bean which qualifies as autowire