spring核心框架体系结构
很多人用 Spring 开发 Java 项目,配 Maven 时却说不清该引哪些 jar,常常是报错再补、补完更乱,下次建同类工程只能整份拷贝。其实 Spring 3 的 jar 大约 19 个,每个都有明确职责,一个 jar 还会传递依赖若干其他 jar。把关系理清,Maven 只要写顶层那一个即…
很多人用 Spring 开发 Java 项目,配 Maven 时却说不清该引哪些 jar,常常是报错再补、补完更乱,下次建同类工程只能整份拷贝。其实 Spring 3 的 jar 大约 19 个,每个都有明确职责,一个 jar 还会传递依赖若干其他 jar。把关系理清,Maven 只要写顶层那一个即…
用 SpringMVC + Spring + Hibernate 搭 SSH 时,最常见的一类坑是:HibernateTemplate 一执行 save / update 就抛 InvalidDataAccessApiUsageException,提示写操作在只读模式(FlushMode.MANUA…
缓存夹在应用程序和物理数据源之间,用来降低对数据库的访问次数。缓存里是数据源的一份拷贝,运行时先读写缓存,再在特定时刻把两边同步。 介质一般是内存,数据量很大时也会落到硬盘。实现时还要管并发和生命周期,所以既要硬件也要软件。 Hibernate 这边分两层:Session 一级缓存默认开、卸不掉;S…
Hibernate 是数据持久层里常用的轻量级框架。同类还有 iBATIS、MyBatis、NHibernate、Siena 等。它是一套开源的 ORM(Object-Relational Mapping),用面向对象的方式查询和操作数据库,把大量 JDBC 样板代码从业务里拿掉。 上手时先抓住两件…
OGNL 全称 Object-Graph Navigation Language(对象图导航语言),用来获取和设置 Java 对象属性,需要写在 Struts2 标签里才生效。 它访问的对象都放在 OGNL 的 context 里。context 是 Map,存一组 key-value,实际对应 A…
JSTL(JSP Standard Tag Library)把迭代、条件、格式化、XML、数据库访问这类常用能力收成一套标签。EL 负责把变量从各 Scope 里取出来,两者经常一起写,JSP 才不像一堆脚本碎片。 标签库分四块:核心 core、格式化、SQL、XML。页面上先把 jar 放进 WE…
把 Struts2 用熟练,日常围着两份文件转:struts.properties 管常量,struts.xml 管 package / action / result。这两份读明白,动态方法调用和参数绑定才不会晕。 下面按原笔记往下走:核心文件 → Action 按命名空间往上搜的顺序 → 三种动…
Apache Struts2 是一套成熟的、基于 MVC 的 Web 应用框架。它把 WebWork 和 Struts 1.x 两套框架的长处合到了一起,用 OGNL 表达式和 Struts2 标签来读写应用数据,从而缩短按 MVC 开发 Web 应用的时间。 下面先跑通第一个程序,再对照工作原理图…
在 Web 后台管理系统里,数据的增、删、改几乎是标配,本质都是对数据库表记录的操作用户界面。当操作的数据里包含头像图片时,事情就多了一环——文件上传。 这篇从"一次提交到底发了什么"讲起,再对比几种实现方式,最后用"学生头像上传"的完整实例把前后端串起来,并补上现代写法和你必须注意的安全坑。 一、…
过滤器(Filter)是服务端实现 javax.servlet.Filter 的 Java 类,用来截取客户端请求和服务器响应。它可以在请求到达后端资源之前拦截,也可以在响应写回客户端之前再处理一遍。 配置写在 web.xml:生命周期是实例化 → init() → 多次 doFilter() → …