springmvc

MVC三层架构在各框架中的特征

て烟熏妆下的殇ゞ 提交于 2019-11-29 00:47:25
1.基于web开发中最原始的jsp+Servlet 图形化理解jsp+servlet结构: 1. 从结构上分析 jsp+servlet 图解原理: 在基于 mvc 设计模式下的最原始的 jsp+Servlet 框架,在某种程度上是不能够达到 mvc 最直观的体现。当客户端发送请求到服务器时,服务器会将从客户端接收到的信息通过封装技术进行解析,在交给 web 容器, web 容器会通过一篇 web.xml 的配置文件去找与之相匹配的 servlet, 此时 servlet 会开启一个线程,只要是符合 web.xml 中所配置的某一个 servlet 时,该 servelt 就会启动 , 然后 servlet 在去调用 service 或者 service 的接口实现类, service ( impl )在去调用 dao(impl),dao 通过从数据库( Database )那获取到数据,在封装到 model 实体类中去。 Servlet 在完成这一系类的动作后,最终将为我们返回一个 jsp 页面,最后该页面在返回到客户端展示给客户。 2. 从 web.xml 配置上: <?xml version="1.0"?> <web-app> <servlet> <servlet-name>TextSerevlet</servlet-name> <servlet-class>com.lh

Spring MVC 系统异常处理方式及性能对比

前提是你 提交于 2019-11-28 23:44:47
大部分公司所用的Spring框架版本是3.1版本以下,所以今天暂时总结3.1版本的Spring-MVC异常处理方式。 一、Spring MVC处理异常有3种方式: (1)使用Spring-MVC提供的SimpleMappingExceptionResolver; (2)实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器; (3)使用@ExceptionHandler注解实现异常处理; 二、分别介绍这三种异常处理的实现方式: (1)使用SimpleMappingExceptionResolver实现异常处理 只需要 在Spring的配置文件applicationContext.xml中增加以下内容: <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <!-- 定义默认的异常处理页面,当该异常类型的注册时使用 --> <property name="defaultErrorView" value="error"></property> <!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception --> <property name="exceptionAttribute" value="ex">

springMVC+spring+Mybatis

我的梦境 提交于 2019-11-28 16:28:33
一、小工具: fastJson:温少的json小工具,打印非常好用 JsonView: json查看工具 d 二、项目配置 1.pom.xml 注意:spring包尽量置前,防止包依赖旧版本 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>sy.testmybatis</groupId> <artifactId>testmybatis</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>testmybatis Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.springframework<

【原创】遨游springmvc之WebDataBinder

大城市里の小女人 提交于 2019-11-27 18:52:29
1. 前言 先上原理图 在我们学习servlet的时候我们知道有一个方法叫做:request.getParameter("paramName"),它返回的是一个String类型,但是如果一切都是这样子我们开发程序的时候就会显得特别麻烦,因为java引入了对象的概念,我们往往把一个表单的数据封装在一个业务中的一个javaBean对象里面,javaBean对象里面的属性会有不同类型,如:int,double,byte等等。所以需要几个东西来把String转化成服务端真正的类型,为了解决这个问题,springmvc引入了WebDataBinder。 WebDataBinder不需要我们自己去新建,WebDataBinder继承了spring-context中的DataBinder,DataBinder中定义了属性编辑器注册的方法 源码1.1 @Override //针对某个类型 public void registerCustomEditor(Class<?> requiredType, PropertyEditor propertyEditor) { getPropertyEditorRegistry().registerCustomEditor(requiredType, propertyEditor); } @Override //针对某个属性 public void

springmvc开发过程中遇到的奇怪浏览器问题

谁都会走 提交于 2019-11-27 18:52:07
最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件. 在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquery的天生兼容性良好,我就没有过多的关注.在项目接近收尾阶段,我开启了IE测试,不过这次发现确实存在了兼容性问题,而且问题非常严重. 由于为了简便,我在提交表单的操作上采用jquery.form.js,这个组件.它提供了ajaxSubmit这个方法,能够进行异步表单提交,并在提交成功后,执行success函数.我的系统在一个表单页面既有普通的内容,也有file标签,进行文件上传的控制.springmvc的controller中需要写一段这样的代码:[code="java"]MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;[/code]这是为了将普通的httprequest转换为spring的request,进而获取文件流等信息.在ajaxSubmit这种提交请求下,firefox下面测试完全正常,能够顺利上传,执行回调函数

springboot 开发入门,及问题汇总

一笑奈何 提交于 2019-11-27 18:02:36
1 . springboot简单介绍(http://projects.spring.io/spring-boot/) 现在的web项目几乎都会用到spring框架,而要使用spring难免需要配置大量的xml配置文件,而springboot的出现解 决了这一问题,一个项目甚至不用部署到服务器上直接开跑,真像springboot所说:“just run”。 springboot的很多默认编码方式都是utf-8,真是福利啊。 org.spring 2013年新开发的框架springboot , 它让一个单独项目的创建变得更加的简单,让所有依赖spring的程序可以做到“just run”。springboot提供大量第三方libraries让我们可以非常轻松的开始创建一个spring工程,甚至不需要再去配置一些繁琐的xml配置文件 框架特点: 1:创建独立的spring应用。 2:嵌入Tomcat, Jetty Undertow 而且不需要部署他们。 3:提供的“starters”poms来简化Maven配置 4:尽可能自动配置spring应用。 5:提供生产指标,健壮检查和外部化配置 6:绝对没有代码生成和XML配置要求 2 . 简单实例演示 本文全程使用Springboot当前版本1.2.2(当前,推荐) 一个简单的helloworld 直接开始run main方法就可以了

Spring MVC Controller 单元测试

浪子不回头ぞ 提交于 2019-11-27 17:32:08
简介 Controller层的单元测试可以使得应用的可靠性得到提升,虽然这使得开发的时间有所增加,有得必失,这里我认为得到的比失去的多很多。 Sping MVC3.2版本之后的单元测试方法有所变化,随着功能的提升,单元测试更加的简单高效。 这里以4.1版本为例,记录Controller的单元测试流程。非常值得参考的是Spring MVC Showcase( https://github.com/spring-projects/spring-mvc-showcase ),它当前的版本使用的是4.1.0,以后会有所变动,为了使项目能够运行,请以它更新的配置为参考。 我用的IDE是IntelliJ IDEA13,我个人认为比Eclipse好用很多,是付费的,很贵! 项目结构 使用maven构建项目,项目结构如下: 在Controller层的测试不需要写单独的Spring config,可以直接使用src/main/java中的.xml 这里记录一下,Spring Mvc context的配置策略: 好多的小伙伴都会在一个文件(e.g spring-mvc.xml)中配置很多的东西,来看看showcase中web的配置结构 WEB-INF web.xml (文件) spring (文件夹) root-context.xml (文件,放置能够被servlet和filter共享使用的资源)

【原创】遨游springmvc之HandlerMapping

最后都变了- 提交于 2019-11-27 16:41:53
1 . 前言 之前我们springmvc原理篇里已经介绍过,从springmvc核心处理器DispatcherServlet派遣请求的时候,首先会将请求包装,这就是我们这边介绍的HandlerMapping 在springmvc源码介绍中我们知道, HandlerMapping是一个处理对象映射和映射对应的处理程序的一个中间体,它也可以由开发者自己去实现,但是我们一般没有这个必要,因为springmvc框架已经给我们提供了足够的映射处理器给我们,通常在初始化我们的web项目的时候,springmvc会初始化2个处理器:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping、org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,其中RequestMappingHandlerMapping便可以处理我们在Controller中带@RequestMapping的方法,HandlerMapping可以直接实现拦截器,但是不会这么做,通常HandlerMapping都会用一个叫HandlerExecutionChain的东西给包装起来

springMVC+spring+mybatis集成

独自空忆成欢 提交于 2019-11-27 11:10:34
在上一博客讲到如何在maven上创建springMVC项目 通过Maven创建SprinvMVC项目 下面我们接着说如果把SSM框架初步搭建完成,感谢 http://blog.csdn.net/gebitan505/article/details/44455235 我也是通过这一篇博客学习的。 一、在pom.xml中添加后续需要的JAR包 上次我们已经将spring的核心包添加进去了,现在我们需要的是将后续需要的mybatis、mybatis-spring集成包、oracle驱动(根据使用的数据库而已)以及bcp的jar包,用来在applicationContext.xml中配置数据库这几个主要的包 版本/其他参数设置 <!-- 各种插件的版本 --> <properties> <!-- spring版本号 --> <spring.version>4.0.2.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> <!-- spring的ID --> <spring

通过Maven创建SprinvMVC项目

扶醉桌前 提交于 2019-11-27 11:10:19
搭建环境呢,请看 MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建 ,我就不在这里重述了,我也是通过这篇文章学会搭建环境的。 新建一个项目 请看: 使用maven创建web项目 ,创建一个项目我也懒得截图了。 根据上述教程搭建好之后我们就需要编辑根目录下的pom.xml 文件 在里面添加版本和groupId信息 , pom.xml内的属性讲解请看 maven核心,pom.xml详解 <!-- 各种插件的版本 --> <properties> <!-- spring版本号 --> <spring.version>4.0.2.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> <spring.groupId>org.springframework</spring.groupId> </properties> 因为我们的是web项目,所以需要引入javee包才行,在dependencies标签内添加 <dependency> <groupId>javax<