03 2022 档案
摘要:1. 类型转换器(Converter) Spring MVC 框架的类型转换,一般发生在视图(JSP)与控制器(Controller)相互传递数据时。对于基本类型(例如 int、long、float、double、boolean 以及 char 等)已经做好了基本类型转换。 Spring MVC 框
阅读全文
摘要:1. 表单标签库 进行 Spring MVC 项目开发时,一般会使用 EL 表达式和 JSTL 标签来完成页面视图的开发。其实 Spring 也有自己的一套表单标签库,通过 Spring 表单标签,可以很容易地将模型数据中的命令对象绑定到 HTML 表单元素中。 和 JSTL 标签的使用方法相同,在
阅读全文
摘要:1. 重定向和转发 Spring MVC 请求方式分为重定向、转发,分别使用 forward 和 redirect 关键字在 controller 层进行处理。 1) 重定向 重定向是将用户从当前处理请求定向到另一个视图(例如 JSP)或处理请求,以前的请求(request)中存放的信息全部失效,并
阅读全文
摘要:1. Controller 传递请求参数 Spring MVC Controller 传递请求参数有多种方式,下面介绍这些方式,可以根据实际情况选择合适的接收方式。 1) 通过处理方法的形参接收请求参数 通过处理方法的形参接收请求参数就是直接把表单参数写在控制器类相应方法的形参中,即形参名称与请求参
阅读全文
摘要:1. Spring MVC执行流程 1) HTTP request 请求的执行流程 (1) 用户点击某个请求路径,发起一个 HTTP request 请求,该请求会被提交到 DispatcherServlet(前端控制器); (2) 由 DispatcherServlet 请求一个或多个 Handl
阅读全文
摘要:本文上接 "Java基础知识(11)- Java 面向对象(三)",补充以下内容。 1. Effectively final Java 中局部内部类和匿名内部类访问的局部变量必须由 final 修饰,以保证内部类和外部类的数据一致性。从 Java 8 开始,可以不加 final 修饰符,由系统默认添
阅读全文
摘要:注:开始阅读 Spring MVC 系列文章之前,读者应该已经掌握了 Java 基础知识、Web 基础知识和 Spring 框架。另外,本系列文章中的所有实例都是使用 IntelliJ IDEA + Apache Maven 配置和编译的,所以还需要对 IntelliJ IDEA 和 Apache
阅读全文
摘要:1. JSP 标准标签库(JSTL) JSP 标准标签库(JSTL)是一个 JSP 标签集合,它封装了 JSP 应用的通用核心功能。 JSTL 支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL 标签。 除了这些,它还提供了一个框架来使用集成 JSTL 的自定义标签。
阅读全文
摘要:1. JSP 异常处理 JSP 开发作为 Java 开发的一个子集,对异常的处理自然遵守 Java 异常的定义方式和基本处理规则,Java 异常处理参考 “Java基础知识(7)- Java 异常处理(一)” 和 “Java基础知识(8)- Java 异常处理(二)”。 JSP 依赖于 Servle
阅读全文
摘要:为了简化 JSP 页面,JSP 2.0 新增了 EL(Expression Language)表达式语言。EL 提供了更为简洁、方便的形式来访问变量和参数,不仅可以简化 JSP 页面代码,还会使开发者的逻辑变得更加清晰。 1. EL表达式的语法 EL 表达式语法如下: ${EL表达式} EL 表达式
阅读全文
摘要:1. JSP Cookies 处理 Cookie 不是 JSP 内置对象,Cookie 由服务器生成并发送给浏览器(客户端),浏览器会将其以文本文件的形式存储在某个目录下。 例如,IE 浏览器把 cookie 信息保存在类似于 C://windows//cookies 的目录下,当用户再次访问某个网
阅读全文
摘要:为了简化页面的开发过程,JSP 提供了一些内置对象。JSP 内置对象又称为隐式对象,它们由容器实现和管理。在 JSP 页面中,这些内置对象不需要预先声明,也不需要进行实例化,我们可以直接在脚本和表达式中使用。JSP 中定义了 9 个内置对象: 对象 说明 request 获取用户请求信息,类型是 j
阅读全文
摘要:1. JSP 指令 JSP 指令(directive)用来告诉 Web 服务器如何处理 JSP 页面的请求和响应。 服务器会根据 JSP 指令来编译 JSP,生成 Java 文件。JSP 指令不产生任何可见输出,在生成的 Java 文件中,不存在 JSP 指令。 JSP 指令语法如下: <%@ di
阅读全文
摘要:注:开始阅读 JSP 系列文章之前,读者应该已经掌握了 Java 基础知识和 Java Servlet。另外,本系列文章中的所有实例都是使用 IntelliJ IDEA + Apache Maven 配置和编译的,所以还需要对 IntelliJ IDEA 和 Apache Maven 有基本的了解。
阅读全文
摘要:监听器 Listener 是一个实现特定接口的 Java 程序,这个程序专门用于监听另一个 Java 对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即自动执行。 1. 监听器的相关概念 事件:方法调用、属性改变、状态改变等。 事件源:被监听的对象( 例如:request、s
阅读全文
摘要:1. Servlet Filter(过滤器) Servlet Filter 又称 Servlet 过滤器,它是在 Servlet 2.3 规范中定义的,能够对 Servlet 容器传给 Web 资源的 request 对象和 response 对象进行检查和修改。 Filter 不是 Servlet
阅读全文
摘要:HTTP(超文本传输协议)是一个基于请求与响应模式的无状态协议。无状态主要指 2 点: (1) 协议对于事务处理没有记忆能力,服务器不能自动维护用户的上下文信息,无法保存用户状态; (2) 每次请求都是独立的,不会受到前面请求的影响,也不会影响后面的请求。当浏览器发送 HTTP 请求到服务器时,服务
阅读全文
摘要:1. 处理静态资源的Servlet 通过链接来访问应用内的资源文件,例如 *.jpg、*.html、*.js 这类的静态文件。这就需要用到 DefaultServlet,它在tomat 的安装目录下的 conf/web.xml 中的定义,如下: 1 <servlet> 2 <servlet-name
阅读全文
摘要:1. Servlet虚拟路径 浏览器通过 URL 地址来访问 Web 服务器中的资源,Servlet 程序若想被外界访问,就必须被映射到一个 URL 地址上。很多时候,该 URL 地址和 Servlet 程序的物理路径(在硬盘上的存储位置)并不一致,因此它被称为虚拟路径。Servlet 与虚拟路径的
阅读全文
摘要:1. Servlet创建方式 Servlet 规范的最顶层是一个名为 javax.servlet.Servlet 的接口,所有的 Servlet 类都要直接或者间接地实现该接口。 Servlet 内置了两个 Servlet 接口的实现类(抽象类),分别为 GenericServlet 和 HttpS
阅读全文
摘要:本文将在 Windows 下使用 IntelliJ IDEA 和 Apache Maven 创建一个简单的 Servlet 程序。在开始之前,确保已经正确搭建了 Servlet 开发环境,如何搭建 Servlet 开发环境见:Web基础知识(1)- Java Servlet (一)Windows版本
阅读全文
摘要:注:开始阅读 Java Servlet 系列文章之前,读者应该已经掌握了 Java 基础知识。另外,本系列文章中的所有实例都是使用 IntelliJ IDEA + Apache Maven 配置和编译的,所以还需要对 IntelliJ IDEA 和 Apache Maven 有基本的了解。 1. J
阅读全文
摘要:1. JVM 简介 Java 平台由 Java 虚拟机(Java Virtual Machine,JVM)和 Java 应用编程接口(Application Programming Interface,API)构成。 Java 应用编程接口是一套独立于操作系统的标准接口,可分为基本部分和扩展部分。在
阅读全文
摘要:Spring Expression Language(简称 SpEL)是一种功能强大的表达式语言,支持运行时查询和操作对象图。Java 有许多可用的表达式语言,例如 JSP EL,OGNL,MVEL 和 JBoss EL,SpEL 语法类似于 JSP EL,功能类似于 Struts2 中的 OGNL
阅读全文
摘要:Spring AOP 是一个简化版的 AOP 实现,并没有提供完整版的 AOP 功能。通常情况下,Spring AOP 是能够满足我们日常开发过程中的大多数场景的,但在某些情况下,我们可能需要使用 Spring AOP 范围外的某些 AOP 功能。Spring AOP 仅支持执行公共(public)
阅读全文
摘要:1. 面向切面编程(AOP) AOP (Aspect Oriented Programming)译为 “面向切面编程”,和 OOP(面向对象编程)类似,它也是一种编程思想。 多数情况下,我们会使用 OOP(面向对象)思想,将应用划分为不同的业务模块,每个模块的核心功能都只为特定的业务提供服务。 存在
阅读全文
摘要:1. Spring自动装配(基于配置文件) Spring 在 Bean 与 Bean 之间建立依赖关系的行为称为 “装配”。 在 XML 配置中通过 <constructor-arg> 和 <property> 中的 ref 属性,手动维护 Bean 与 Bean 之间的依赖关系的。Spring 容
阅读全文
摘要:1. Spring后置处理器 BeanPostProcessor 接口也被称为后置处理器,通过该接口可以自定义调用初始化前后执行的操作方法。 该接口中包含了两个方法: postProcessBeforeInitialization() 方法:在 Bean 实例化、属性注入后,初始化前调用。 post
阅读全文
摘要:1. Spring Bean作用域 Spring Bean 的 5 种作用域: 作用域 描述 singleton 单例模式,表示在 Spring 容器中只有一个 Bean 实例 prototype 原型模式,表示每次通过 Spring 容器获取 Bean 时,容器都会创建一个新的 Bean 实例。
阅读全文
摘要:在 Spring 中,构成应用程序主干并由 Spring IoC 容器管理的对象称为 Bean。Bean 是一个由 Spring IoC 容器实例化、装配和管理的对象。简而言之: (1) Bean 是对象,一个或者多个不限定; (2) Bean 由 Spring IoC 容器管理; (3) Bean
阅读全文
摘要:1. IoC 简介 IoC (Inversion of Control) 被译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。 IoC 是从思想层面上发生了 “主从换位” 的改变。原本调用者是主动的一方,它想要使用什么资源就
阅读全文
摘要:本文将在 Windows 下使用 IntelliJ IDEA 和 Apache Maven 创建一个简单的 Spring 程序。在开始之前,确保已经正确搭建了 Spring 开发环境,如何搭建 Spring 开发环境见:Spring基础知识(1)- Spring简介、Spring体系结构和开发环境配
阅读全文
摘要:注:开始阅读 Spring 基础知识系列文章之前,读者应该已经掌握了 Java 基础知识。另外,本系列文章中的所有实例都是使用 IntelliJ IDEA + Apache Maven 配置和编译的,所以还需要对 IntelliJ IDEA 和 Apache Maven 有基本的了解。 1. Spr
阅读全文
摘要:1. 通过反射执行方法(访问方法) 要动态获取一个对象方法的信息,首先需要通过下列方法之一创建一个 Method 类型的对象或者数组。 getMethods() getMethods(String name,Class<?> …parameterTypes) getDeclaredMethods()
阅读全文
摘要:Java 反射机制 (Reflection)是 Java 语言的一个重要特性,在服务器程序和中间件程序中广泛运用。在服务器端,往往需要根据客户的请求,动态调用某一个对象的特定方法。 在 ORM 中间件的实现中,运用 Java 反射机制可以读取任意一个 JavaBean 的所有属性,或者给这些属性赋值
阅读全文
摘要:1. Java 集合简介 Java 的初期版本提供了 Dictionary, Vector, Stack, 和 Properties 等类用来存储和操作对象组。 这些类的功能很有用,但是它们缺少一个核心的、统一的主题(或基类),相互之间缺乏互操作性。比如,使用 Vector 类和使用 Propert
阅读全文