JavaWeb 核心:JavaBean+JSP 动作标签 + EL 表达式全解析
在 JavaWeb 开发的入门阶段JavaBean、JSP 标准动作标签、EL 表达式是绕不开的核心知识点它们是实现数据封装、页面简化操作、数据快速展示的基础一、什么是 JavaBean规范 实战一步到位1. JavaBean 核心概念JavaBean 本质就是遵循特定规范的 Java 普通类专门用来封装数据实体类比如学生、用户、商品等对象让数据传递和管理更规范。2. JavaBean 必须遵守的 4 大规范类必须用public修饰成员变量全部私有化private提供无参构造方法必备为私有变量提供公共的getter/setter方法3. 实战学生实体类Studentpackage com.example.javabean; // 公共类 public class Student { // 1. 私有成员变量 private String no; // 学号 private String name; // 姓名 private int age; // 年龄 private String sdept; // 专业 // 2. 无参构造方法必须 public Student() { } // 3. 有参构造方法按需定义不影响规范 public Student(String no, String name, int age, String sdept) { this.no no; this.name name; this.age age; this.sdept sdept; } public Student(String no, String name, int age) { this.no no; this.name name; this.age age; } // 4. 公共getter/setter方法 public String getNo() { return no; } public void setNo(String no) { this.no no; } public String getName() { return name; } public void setName(String name) { this.name name; } public int getAge() { return age; } public void setAge(int age) { this.age age; } public String getSdept() { return sdept; } public void setSdept(String sdept) { this.sdept sdept; } }4. JavaBean 测试package com.example.javabean; public class Main { public static void main(String[] args) { // 无参构造创建对象 set方法赋值 Student s1 new Student(); // 错误写法私有属性不能直接访问 s1.no 4444; s1.setNo(4444); s1.setName(张三); // 有参构造直接赋值 Student s2 new Student(001,zhangsan,23,qukuail); Student s3 new Student(001,李四,34); // get方法获取属性值 System.out.println(s2.getName()); // 输出zhangsan } }✅核心总结私有变量必须通过set赋值、get取值无参构造是 JavaBean 的硬性要求二、JSP 动作标签操作 JavaBean 超便捷JSP 提供了三个标准动作标签专门用来创建 JavaBean 对象、赋值、取值替代繁琐的 Java 代码让页面更简洁。核心标签一览表格标签作用jsp:useBean创建 JavaBean 对象jsp:setProperty给 JavaBean 属性赋值jsp:getProperty获取 JavaBean 属性值实战JSP 操作 User JavaBean1. 先准备 User 实体类package com.example.javabean; public class User { private String userName; private String userPwd; public User() {} public String getUserName() {return userName;} public void setUserName(String userName) {this.userName userName;} public String getUserPwd() {return userPwd;} public void setUserPwd(String userPwd) {this.userPwd userPwd;} }2. JSP 页面操作 JavaBean% page contentTypetext/html;charsetUTF-8 languagejava % html head titleJavaBean基础使用/title /head body %-- 1. 创建JavaBean对象id对象名class全类名scope作用域 --% jsp:useBean iduser classcom.example.javabean.User scopepage/jsp:useBean %-- 2. 给属性赋值 --% jsp:setProperty nameuser propertyuserName valueadmin/jsp:setProperty jsp:setProperty nameuser propertyuserPwd value123456/jsp:setProperty %-- 3. 获取属性值方式1 动作标签 --% 用户名jsp:getProperty nameuser propertyuserName/ br %-- 4. 获取属性值方式2 Java代码 --% % String name user.getUserName(); String pwd user.getUserPwd(); // 简单登录判断 if(admin.equals(name) pwd.equals(123456)){ out.println(br登录成功); }else { out.println(br登录失败); } % /body /html✅关键说明id自定义对象名页面中唯一标识class必须写全类名包名 类名scope作用域常用page当前页面三、EL 表达式简化 JSP 数据获取告别 Java 代码ELExpression Language表达式专门用于在 JSP 页面中获取数据、执行运算语法极简${表达式}彻底告别页面中杂乱的% %和 Java 代码。1. EL 核心功能执行算术、比较、逻辑运算获取域对象数据request/session/application获取 JavaBean 属性、集合数据判断空值empty 关键字2. EL 表达式实战大全% page importcom.example.javabean.User % % page importjava.util.ArrayList % % page contentTypetext/html;charsetUTF-8 languagejava % % page isELIgnoredfalse %%--必须开启EL表达式--% html head titleEL表达式全解/title /head body %-- 1. 算术运算符 --% 53${53},5-3${5-3},5/3${5/3},5%3${5%3}br %-- 2. 比较运算符 --% 53---${53}br %-- 3. 逻辑运算符 --% 53 23---${53 23}br %-- 4. empty运算符判断空值null/空字符串都为true --% % String cartnull;% ${empty cart?购物车为空:cart} br %-- 5. 点运算符获取JavaBean属性 --% % User usernew User(); user.setUserName(admin); user.setUserPwd(123456); request.setAttribute(user,user); // 存入request域 % 用户名${user.userName} %-- 等价于 user.getUserName() --% 密码${user.userPwd} br %-- 6. []运算符获取集合/数组元素 --% % ArrayList list new ArrayList(); list.add(one); list.add(two); list.add(three); session.setAttribute(list, list); // 存入session域 % 第一个元素: ${list[0]},第三个元素: ${list[2]} br /body /html✅重点页面必须加isELIgnoredfalse否则 EL 表达式会被当成普通文本四、实战表单提交 EL 接收参数最常用的场景表单提交数据JSP 用 EL 表达式快速接收无需手动获取 request 参数1. 登录表单页面form.jsp% page contentTypetext/html;charsetUTF-8 languagejava % html body %-- 表单提交到uint44.jsp --% form action${pageContext.request.contextPath}/uint44.jsp 用户名input typetext nameusernamebr 密码input typepassword nameuserpwdbr input typesubmit value登录 /form /body /html2. 接收参数页面uint44.jsp% page contentTypetext/html;charsetUTF-8 languagejava isELIgnoredfalse % html head title表单参数接收/title /head body %-- EL内置对象param直接获取表单参数 --% 你的用户名为: ${param.username}, 密码为${param.userpwd} /body /html✅神器${param.参数名}直接获取表单提交的数据一行代码搞定五、知识点总结必看JavaBean私有变量 无参构造 get/set 方法是数据封装的标准JSP 动作标签jsp:useBean创建对象、jsp:setProperty赋值、jsp:getProperty取值EL 表达式${}简化数据操作支持运算、JavaBean、集合、表单参数开发规范EL 必须开启isELIgnoredfalseJavaBean 必须有无参构造