【 <一> 炼丹初探:JavaWeb 的起源与基础】之 JSP 基础语法:从脚本片段到 EL 表达式
<前文回顾>
<今日更新>
一、JSP 是啥玩意儿?
JSP[1] 这玩意儿,说白了就是个“披着 HTML 外衣的 Java”。它能让开发人员在 HTML 里直接写 Java 代码,生成动态网页。虽然现在 JSP 已经有点“过气”了,但不少老系统还在用它,所以掌握 JSP 基础还是“有备无患”。
二、JSP 的“三板斧”:脚本片段、声明、表达式
JSP 的基础语法主要分三块:脚本片段、声明、表达式。这三块儿就像“三板斧”,掌握了它们,JSP 就能“耍”得风生水起。
1. 脚本片段
脚本片段是 JSP 里最常见的玩意儿,它能让开发人员在 HTML 里直接写 Java 代码。脚本片段用 <% %> 包裹,里头写的 Java 代码会在 JSP 页面被请求时执行。
Jsp Code |
<% String name = "张三"; out.println("你好," + name); %> |
脚本片段虽然好用,但写多了容易“乱套”,HTML 和 Java 代码混在一起,看得人“眼花缭乱”。所以,现在大家都提倡“少用脚本片段,多用 EL 表达式”。
2. 声明
声明是 JSP 里用来定义变量和方法的地方。声明用 <%! %> 包裹,里头写的 Java 代码会被编译成 Servlet 的成员变量和方法。
Jsp Code |
<%! private int count = 0; public void increment() { count++; } %> |
声明虽然能定义变量和方法,但用多了容易“惹麻烦”,因为 JSP 是单例的,多个请求共享同一个实例,变量和方法可能会“打架”。
3. 表达式
表达式是 JSP 里用来输出内容的地方。表达式用 <%= %> 包裹,里头写的 Java 代码会被执行,结果会被输出到 HTML 里。
Jsp Code |
<%= "当前时间:" + new java.util.Date() %> |
表达式虽然简单,但用起来得“小心”,因为里头写的 Java 代码会被直接输出到 HTML 里,容易引发安全问题。
三、JSP 的“进阶玩法”:EL 表达式
JSP 的脚本片段虽然好用,但写多了容易“乱套”。于是,JSP 2.0 引入了 EL 表达式[2],让开发人员能更方便地访问数据。
1. EL 表达式的基本语法
EL 表达式用 ${} 包裹,里头写的表达式会被解析并输出到 HTML 里。EL 表达式能访问 JavaBean、Map、List 等数据结构,还能调用方法。
Jsp Code |
${user.name} |
EL 表达式比脚本片段“清爽”多了,写起来也“顺手”,所以现在大家都提倡“少用脚本片段,多用 EL 表达式”。
2. EL 表达式的隐式对象
EL 表达式里有一些“隐式对象”,能方便地访问请求参数、会话数据啥的。这些隐式对象就像“工具箱”,开发人员能“随用随取”。
- pageContext:访问 JSP 页面的上下文。
- request:访问 HTTP 请求的参数和属性。
- session:访问 HTTP 会话的数据。
- application:访问 Web 应用的全局数据。
Jsp Code |
${requestScope.user.name} |
3. EL 表达式的运算符
EL 表达式支持各种运算符,能方便地进行算术运算、逻辑运算啥的。这些运算符就像“小工具”,开发人员能“灵活使用”。
- 算术运算符:+、-、*、/、%
- 关系运算符:==、!=、<、>、<=、>=
- 逻辑运算符:&&、||、!
Jsp Code |
${user.age > 18 ? "成年" : "未成年"} |
四、JSP 的“老底”:虽然过气,但还有用
虽然现在 JSP 已经有点“过气”了,但不少老系统还在用它。这些老系统就像“老房子”,虽然“旧”了点,但“拆”起来麻烦,所以还得“修修补补”继续用。
1. 旧系统的“遗产”
不少老系统都是用 JSP 开发的,虽然现在大家都用 Spring Boot、Vue.js 这些新技术了,但这些老系统还得“维护”。所以,掌握 JSP 基础还是“有备无患”。
2. JSP 的“替代品”
虽然 JSP 已经“过气”了,但它的“替代品”也不少。比如 Thymeleaf、Freemarker 这些模板引擎,都能用来生成动态网页。这些模板引擎比 JSP “清爽”多了,写起来也“顺手”。
五、JSP 的“历史”:从 JSP 1.0 到 JSP 2.3
JSP 从 1999 年诞生到现在,已经走过了 20 多个年头。虽然现在 JSP 已经有点“过气”了,但它的“历史”还是挺“辉煌”的。
1. JSP 1.0:初出茅庐
JSP 1.0 在 1999 年发布,是 JSP 的“初代版本”。JSP 1.0 虽然功能简单,但已经能用来生成动态网页了。
2. JSP 2.0:引入 EL 表达式
JSP 2.0 在 2003 年发布,引入了 EL 表达式,让开发人员能更方便地访问数据。JSP 2.0 的发布,让 JSP 的“玩法”更加丰富。
3. JSP 2.3:最后的“辉煌”
JSP 2.3 在 2013 年发布,是 JSP 的“最后版本”。JSP 2.3 虽然功能强大,但已经有点“过气”了,因为大家都开始用 Spring Boot、Vue.js 这些新技术了。
专有名词解释
- JSP:JavaServer Pages,一种基于 Java 的技术,用于创建动态 Web 页面。
- EL 表达式:Expression Language,一种用于在 JSP 页面中访问数据的表达式语言。