摘要: 在 Spring MVC 应用的开发中,不管是操作底层数据库,还是业务层或控制层,都会不可避免地遇到各种可预知的、不可预知的异常。我们需要捕捉处理异常,才能保证程序不被终止。 一种是使用HandlerExceptionResolver接口;一种是在Controller类内部使用@ExceptionH 阅读全文
posted @ 2021-08-16 21:54 emanlee 阅读(166) 评论(0) 推荐(0)
摘要: 一般情况下,用户的输入是随意的,为了保证数据的合法性,数据验证是所有 Web 应用必须处理的问题。 Spring MVC 有以下两种方法可以验证输入: 利用 Spring 自带的验证框架 利用 JSR 303 实现 数据验证分为客户端验证和服务器端验证,客户端验证主要是过滤正常用户的误操作,通过 J 阅读全文
posted @ 2021-08-16 21:52 emanlee 阅读(241) 评论(0) 推荐(0)
摘要: 在系统中,经常需要在处理用户请求之前和之后执行一些行为,例如检测用户的权限,或者将请求的信息记录到日志中,即平时所说的“权限检测”及“日志记录”。当然不仅仅这些,所以需要一种机制,拦截用户的请求,在请求的前后添加处理逻辑。 Spring MVC 提供了 Interceptor 拦截器机制,用于请求的 阅读全文
posted @ 2021-08-16 21:52 emanlee 阅读(356) 评论(0) 推荐(0)
摘要: 在进行 Spring MVC 项目开发时,一般会使用 EL 表达式和 JSTL 标签来完成页面视图的开发。其实 Spring 也有自己的一套表单标签库,通过 Spring 表单标签,可以很容易地将模型数据中的命令对象绑定到 HTML 表单元素中。下面我们就通过一个示例来演示该标签库的用法。 首先和 阅读全文
posted @ 2021-08-16 21:47 emanlee 阅读(241) 评论(0) 推荐(0)
摘要: Spring MVC 框架的 Formatter<T> 与 Converter<S, T> 一样,也是一个可以将一种数据类型转换成另一种数据类型的接口。不同的是,Formatter 的源类型必须是 String 类型,而 Converter 的源类型可以是任意数据类型。Formatter 更适合 W 阅读全文
posted @ 2021-08-16 21:46 emanlee 阅读(409) 评论(0) 推荐(0)
摘要: Spring MVC 框架的 Converter<S,T> 是一个可以将一种数据类型转换成另一种数据类型的接口,这里 S 表示源类型,T 表示目标类型。开发者在实际应用中使用框架内置的类型转换器基本上就够了,但有时需要编写具有特定功能的类型转换器。 例如,用户输入的日期可能有许多种形式,如“Dece 阅读全文
posted @ 2021-08-16 21:45 emanlee 阅读(959) 评论(0) 推荐(0)
摘要: 本文介绍在 Spring MVC 中非常重要的注解 @ModelAttribute,用来将请求参数绑定到 Model 对象。 在 Controller 中使用 @ModelAttribute 时,有以下几种应用情况。 应用在方法上 应用在方法的参数上 应用在方法上,并且方法也使用了 @Request 阅读全文
posted @ 2021-08-16 21:42 emanlee 阅读(190) 评论(0) 推荐(0)
摘要: 将依赖注入到 Spring MVC 控制器时需要用到 @Autowired 和 @Service 注解。 @Autowired 注解属于 org.springframework.beans.factory. annotation 包,可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 @ 阅读全文
posted @ 2021-08-16 21:41 emanlee 阅读(937) 评论(0) 推荐(0)
摘要: Spring MVC 请求方式分为转发、重定向 2 种,分别使用 forward 和 redirect 关键字在 controller 层进行处理。 重定向是将用户从当前处理请求定向到另一个视图(例如 JSP)或处理请求,以前的请求(request)中存放的信息全部失效,并进入一个新的 reques 阅读全文
posted @ 2021-08-16 21:38 emanlee 阅读(572) 评论(0) 推荐(0)
摘要: Spring 2.5 版本新增了 Spring MVC 注解功能,用于替换传统的基于 XML 的 Spring MVC 配置。 在《第一个Spring MVC应用》一节中创建了两个传统风格的控制器,它们是实现 Controller 接口的类。传统风格的控制器不仅需要在配置文件中部署映射,而且只能编写 阅读全文
posted @ 2021-08-16 21:36 emanlee 阅读(542) 评论(0) 推荐(0)
摘要: Spring MVC Controller 接收请求参数的方式有很多种,有的适合 get 请求方式,有的适合 post 请求方式,有的两者都适合。主要有以下几种方式: 通过实体 Bean 接收请求参数 通过处理方法的形参接收请求参数 通过 HttpServletRequest 接收请求参数 通过 @ 阅读全文
posted @ 2021-08-16 21:32 emanlee 阅读(247) 评论(0) 推荐(0)
摘要: 在学习框架之前,首先来了解一下 Spring MVC 框架的整体请求流程和使用到的 API 类。 Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP、FreeMarker、Tiles、iText 和 POI。Spring MVC 框架并不关心使用的视图技术,也不会强迫开发者只使 阅读全文
posted @ 2021-08-16 21:29 emanlee 阅读(3423) 评论(0) 推荐(0)
摘要: 视图解析器(ViewResolver)是 Spring MVC 的重要组成部分,负责将逻辑视图名解析为具体的视图对象。 Spring MVC 提供了很多视图解析类,其中每一项都对应 Java Web 应用中特定的某些视图技术。下面介绍一些常用的视图解析类。 URLBasedViewResolver 阅读全文
posted @ 2021-08-16 21:27 emanlee 阅读(1329) 评论(0) 推荐(0)
摘要: 本节通过一个简单的 Web 应用 springmvcDemo 来演示如何创建 Spring MVC 程序。 搭建步骤如下: 创建 Web 应用并引入 JAR 包,本教程 Spring 使用版本为 5.2.3 Spring MVC 配置:在 web.xml 中配置 Servlet,创建 Spring 阅读全文
posted @ 2021-08-16 21:14 emanlee 阅读(152) 评论(0) 推荐(0)
摘要: Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。 Spring MVC 是结构清晰的 Servlet+JSP+JavaBean 的实现,是一个典型的教科书式的 MVC 构架,不像 Struts 等其它框架都是变种或者不 阅读全文
posted @ 2021-08-16 21:04 emanlee 阅读(776) 评论(0) 推荐(0)
摘要: 什么是 MVC MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M数据模型 和 V视图 实现代码分离,使同一个程序可以有不同的表现形式。其中,View 的定义比较清晰,就是用户界面。 例如: 在 阅读全文
posted @ 2021-08-16 20:59 emanlee 阅读(908) 评论(0) 推荐(0)
摘要: 一、AOP——另一种编程思想 1.1 什么是 AOP AOP(Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。 从《Spring 阅读全文
posted @ 2021-08-16 12:34 emanlee 阅读(90) 评论(0) 推荐(0)
摘要: 通过学习《Spring JDK动态代理》一节可以了解到,JDK 动态代理使用起来非常简单,但是 JDK 动态代理的目标类必须要实现一个或多个接口,具有一定的局限性。如果不希望实现接口,可以使用 CGLIB代理。 CGLIB(Code Generation Library)是一个高性能开源的代码生成包 阅读全文
posted @ 2021-08-16 11:31 emanlee 阅读(107) 评论(0) 推荐(0)
摘要: Spring JDK 动态代理需要实现 InvocationHandler 接口,重写 invoke 方法,客户端使用 Java.lang.reflect.Proxy 类产生动态代理类的对象。 示例 下面使用 Eclipse IDE 演示 JDK 动态代理,步骤如下: 创建 SpringDemo 项 阅读全文
posted @ 2021-08-16 11:29 emanlee 阅读(104) 评论(0) 推荐(0)
摘要: AOP 的全称是“Aspect Oriented Programming”,即面向切面编程,和 OOP(面向对象编程)类似,也是一种编程思想。 AOP 采取横向抽取机制(动态代理),取代了传统纵向继承机制的重复性代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。主要作用是分离功能性 阅读全文
posted @ 2021-08-16 11:06 emanlee 阅读(134) 评论(0) 推荐(0)