springmvc框架

SpringMVC框架的学习(二)

☆樱花仙子☆ 提交于 2019-11-29 05:00:59
通过注解的方式来代替配置信息 1首先我们需要导入aop的jar包 之后在Eclipse中的help中market 搜索springtools的工具 2之后我们需要在 springmvc的配置文件 (xml)加入下面代码 <context:component-scan base-package="com.zhiyou100.xth.controller"></context:component-scan> <!-- 开启注解驱动 --> <!-- 配置图形解析器 --> <mvc:annotation-driven/> <!--释放静态资源 --> <mvc:default-servlet-handler/><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/view/"/> <property name="suffix" value=".jsp"/> </bean> 其中<context>标签中是包扫描扫描controller类所在的包 <mvc>标签中的是 开启注解驱动 其中的释放静态资源是指下面 <url-pattern>*.do</url-pattern>标签中后缀为才会进入 所以我们换成

SpringMVC框架的学习(一)

此生再无相见时 提交于 2019-11-29 04:57:45
前言:首先我们学习SpringMVC之前需要理解什么是MVC模式 MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。 MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器。(下面是个人理解的简单流程图) SpringMVC的流程图 详细理解一下这个流程图 其中导入相应的jar包(其中jackson是后面需要用到) 首先是客户发出一个请求http://localhost:8080/springmvc-01/my.do. 到达web.xml文件中DispatherServlet查看是否符合url的要求 DispathcherServlet就会查询到springmvc中的配置文件找到HanderMapping 根据bean中的名称查找相应的controller 找到我的Mycontroller类执行该类中的handleRequestInternal方法 根据返回的 modelAndView 在找 springmvc 配置文件中视图解析器。 把 viewName 和 prefix 以及

SpringMVC第一天

我只是一个虾纸丫 提交于 2019-11-29 04:57:01
SpringMVC第一天 一、理解什么是SpringMVC   Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。   Spring MVC主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。他的两个核心是两个核心:    处理器映射 :选择使用哪个控制器来处理请求    视图解析器 :选择结果应该如何渲染   通过以上两点,Spring MVC保证了如何选择控制处理请求和如何选择视图展现输出之间的松耦合。 二、SpringMVC运行原理 (1) Http请求 :客户端请求提交到DispatcherServlet。 (2) 寻找处理器 :由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。 (3) 调用处理器 :DispatcherServlet将请求提交到Controller。 (4)(5)调用业务处理和返回结果 :Controller调用业务逻辑处理后,返回ModelAndView。 (6)(7

关于springmvc中上传文件返回400错误状态码解决方案

血红的双手。 提交于 2019-11-29 00:07:53
这段时间这在学习springmvc框架的我,在springmvc上传文件中碰到了阻碍,原因是浏览器一致显示的都是400错误。索性在网上翻阅大量资料后。这一难题得到了解决。 以下是我认为在学习中容易发生的错误。 1.jsp页面提交表单的form中要有enctype="multipart/form-data"属性值并且提交方式一定要是post  2.在springmvc的配置文件中需要配置CommonsMultipartResolver类,并且id一定要是multipartResolver,可以在其中注入图片上传最大限制等属性    3.选择上传文件的input标签中name属性 不能 与其他接收其他input标签数据的实体类中的对应属性的属性名一致 标签中: 实体类中: 4.选择上传文件的input标签中name属性一定要与contraller层中对应的方法中的MultipartFile类型的形参名一致(实际可以不用一致,但需要更为繁琐的步骤去建立关系) 5.要导入相应的jar包 commons-upload.jar 、 commons-io.jar 6.可能表单中含有日期类等,表单提交的数据格式与自定义的日期转换器中定义的格式不匹配或者没有日期转换器 以上是我对springmvc上传文件中做出的一些经验总结,如有不妥之处,望广大网友批评指正。 来源: https://www

手写迷你SpringMVC框架

淺唱寂寞╮ 提交于 2019-11-29 00:07:48
前言 学习如何使用Spring,SpringMVC是很快的,但是在往后使用的过程中难免会想探究一下框架背后的原理是什么,本文将通过讲解如何手写一个简单版的springMVC框架,直接从代码上看框架中请求分发,控制反转和依赖注入是如何实现的。 建议配合示例源码阅读,github地址如下: https://github.com/liuyj24/mini-spring 项目搭建 项目搭建可以参考github中的项目,先选好jar包管理工具,Maven和Gradle都行,本项目使用的是Gradle。 然后在项目下建两个模块,一个是framework,用于编写框架;另外一个是test,用于应用并测试框架(注意test模块要依赖framework模块)。 接着在framework模块下按照spring创建好beans,core,context,web等模块对应的包,完成后便可以进入框架的编写了。 请求分发 在讲请求分发之前先来梳理一下整个web模型: 首先用户在客户端发送一个请求到服务器,经操作系统的TCP/IP栈解析后会交到在某个端口监听的web服务器。 web服务器程序监听到请求后便会把请求分发给对应的程序进行处理。比如Tomcat就会将请求分发给对应的java程序(servlet)进行处理,web服务器本身是不进行请求处理的。 本项目的web服务器选择Tomcat

springmvc的框架搭建及工作流程

两盒软妹~` 提交于 2019-11-28 20:27:21
1.搭建要点 web.xml: < servlet-mapping > < servlet-name >springDispatcherServlet</ servlet-name > < url-pattern >/</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.css</ url-pattern > </ servlet-mapping > spring mvc如何访问静态资源需要加入以下代码: < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.gif</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >default</ servlet-name > < url-pattern >*.png</ url-pattern > </ servlet-mapping > < servlet-mapping > < servlet-name >default</ servlet-name > < url

SpringIoC和SpringMVC的快速入门

给你一囗甜甜゛ 提交于 2019-11-28 17:58:42
更多内容,欢迎关注微信公众号:全菜工程师小辉~ Spring的优势? 降低了组件之间的耦合性 ,实现了软件各层之间的解耦 可以使用容易提供的众多服务,如事务管理,消息服务等 容器提供单例模式支持 容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 Spring的IoC机制降低了业务对象替换的复杂性 容器提供了众多的辅助类,能加快应用的开发 Spring对于主流的应用框架提供了集成支持,如Hibernate,JPA,Mybatis等 Spring属于低侵入式设计,代码的污染极低, 并且独立于各种应用服务器 Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部。 为什么本文不讲AOP? IoC和AOP是Spring框架的两大特性,IoC和MVC的流程密不可分,可以看作是面向对象编程的实现;而AOP特性则是面向切面编程的体现,也是前者的补充,所以可以拆分开后续讲解。 本文对SpringIoC和SpringMVC的流程进行了简单的讲解,更加详细的过程,欢迎看笔者的代码库,里面几乎每行代码都做了详细注释,一个请求debug跟下来,过程就一目了然了。 快戳我,我们去学习~ 什么是SpringIoC? 控制反转IoC(Inversion of Control),是一种设计思想

SpringIoC和SpringMVC的快速入门

风流意气都作罢 提交于 2019-11-28 17:21:25
更多内容,欢迎关注微信公众号:全菜工程师小辉~ Spring的优势? 降低了组件之间的耦合性 ,实现了软件各层之间的解耦 可以使用容易提供的众多服务,如事务管理,消息服务等 容器提供单例模式支持 容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 Spring的IoC机制降低了业务对象替换的复杂性 容器提供了众多的辅助类,能加快应用的开发 Spring对于主流的应用框架提供了集成支持,如Hibernate,JPA,Mybatis等 Spring属于低侵入式设计,代码的污染极低, 并且独立于各种应用服务器 Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部。 为什么本文不讲AOP? IoC和AOP是Spring框架的两大特性,IoC和MVC的流程密不可分,可以看作是面向对象编程的实现;而AOP特性则是面向切面编程的体现,也是前者的补充,所以可以拆分开后续讲解。 本文对SpringIoC和SpringMVC的流程进行了简单的讲解,更加详细的过程,欢迎看笔者的代码库,里面几乎每行代码都做了详细注释,一个请求debug跟下来,过程就一目了然了。 快戳我,我们去学习~ 什么是SpringIoC? 控制反转IoC(Inversion of Control),是一种设计思想

SpringMVC源码分析4:DispatcherServlet如何找到正确的Controller

梦想与她 提交于 2019-11-28 12:56:20
SpringMVC是目前主流的Web MVC框架之一。 我们使用浏览器通过地址 http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问哪个Controller中的方法,这期间到底发生了什么。 本文将分析SpringMVC是如何处理请求与Controller之间的映射关系的,让读者知道这个过程中到底发生了什么事情。 本文实际上是在上文基础上,深入分析 HandlerMapping里的 HandlerExecutionChain getHandler(HttpServletRequest var1) throws Exception; 该方法的具体实现,包括它如何找到对应的方法,以及如何把结果保存在map里,以便让请求转发到对应的handler上,同时也分析了handleradaptor具体做了什么事情。 源码分析 在分析源码之前,我们先了解一下几个东西。 1.这个过程中重要的接口和类。 HandlerMethod类:   Spring3.1版本之后引入的。 是一个封装了方法参数、方法注解,方法返回值等众多元素的类。      它的子类InvocableHandlerMethod有两个重要的属性WebDataBinderFactory和HandlerMethodArgumentResolverComposite,

SpringMVC源码分析3:DispatcherServlet的初始化与请求转发

旧城冷巷雨未停 提交于 2019-11-28 12:55:43
在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写完之后在web.xml里注册这个Servlet类。 除此之外,没有其他了。我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的页面。为了更好的理解上面这个过程,你需要学习关于Servlet生命周期的三个阶段,就是所谓的“init-service-destroy”。 以上的知识,我觉得对于你理解SpringMVC的设计思想,已经足够了。SpringMVC当然可以称得上是一个复杂的框架,但是同时它又遵循Servlet世界里最简单的法则,那就是“init-service-destroy”。我们要分析SpringMVC的初始化流程,其实就是分析DispatcherServlet类的init()方法,让我们带着这种单纯的观点,打开DispatcherServlet的源码一窥究竟吧。 配置元素读取 用Eclipse IDE打开DispatcherServlet类的源码,ctrl+T看一下。 DispatcherServlet类的初始化入口方法init()定义在HttpServletBean这个父类中