JavaBean 及 jsp函数

本文深入探讨JavaBean的概念及其在JSP中的应用,包括无参构造方法、私有化字段、getter/setter方法、实现Serializable接口等。同时,介绍JSP中操作JavaBean的动作元素如jsp:useBean、jsp:setProperty、jsp:getProperty,并通过EL表达式和JSTL标签库简化页面开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JavaBean(封装数据,传递数据 VO:Value Object)
1、必须有一个无参的构造方法(默认构造方法)
2、字段必须私有化。如果只有一个单词构成,全部小写;如果有多个单词构成,从第2个单词开始,首字母大写
3、提供公共的getter或setter方法。比如name字段,getName,setName
4、一般情况下需要实现Serializable
二、JSP中操作JavaBean的动作元素
1、jsp:useBean
id:查找或实例化的bean的名称。必须的
class:要实例化的bean的类型(全类名)。必须的
scope:page|request|session|application 不是必须的。默认值是page。实例化的bean存放的域范围
2、jsp:setProperty
name:javabean的名称
property:属性名称(请求参数填充属性的话,可以使用通配符*)
value:属性的值。可以是字符串或者Java表达式
param:请求参数的名称。可以填充到bean的属性中。

3、jsp:getProperty
name:javabean的名称
property:属性名称
注:如果属性的取值为null,则会在页面上输出null字符串(不可取)
三、EL表达式
1、作用:替换掉JSP中的Java表达式<%=%>
2、其他作用
a、获取数据
EL获取域范围中的指定名称的对象
可以使用.和[]运算符取某个属性或索引上的元素
p.name == p["name"]
用[]取某个属性时,要加上引号。用在名称不符合java语法命名规范的地方

-------------------------------

b、执行运算
empty非常有用:
对象不存在 返回true
空字符串 返回true
空集合 返回true
----------------------------------
EL不支持字符串连接操作

c、获取web开发常用对象(11个内置EL对象)
pageContext:代表PageContext对象
pageScope:page域范围的那个Map
requestScope:request域范围的那个Map
sessionScope:session域中用于保存属性的Map对象
applicationScope:代表application域中用于保存属性的Map对象

param:表示一个保存了所有请求参数的Map对象
paramValues:表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]
header:表示一个保存了所有http请求头字段的Map对象
headerValues:同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]
cookie:表示一个保存了所有cookie的Map对象
initParam:表示一个保存了所有web应用初始化参数的map对象
d、调用Java(静态)方法
开发步骤:
1、编写一个类,方法要是静态的
2、在WEB-INF目录下建立一个扩展名为tld的xml文档(C:\apache-tomcat-6.0.32\webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.tld)
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>myfn</short-name>
<uri>http://www.itheima.com/jsp/functions</uri>
<function>
<description>to upper case</description>
<name>toUpperCase</name>
<function-class>com.itheima.fn.MyFunction</function-class>
<function-signature>java.lang.String toUpperCase( java.lang.String )</function-signature>
</function>
</taglib>
3、利用taglib指令,引入自定的tld函数(自定义标签)
${myfn:toUpperCase(s)}
四、JSTL标签库(借助标签技术,可以消除JSP中的Java脚本)
1、Core
c-1_0.tld:1.0,不支持EL的
c-1_0-rt.tld:1.0,支持EL的
c.tld:1.1 支持EL

if:判断
属性
test:boolean。必选的
var:保存结果的域变量名
scope:var指定的名称保存的域范围

forEach:完成迭代。数组、List、Set、Map,打印自然数
items:迭代的集合或数组
varStatus:取一个名称,引用javax.servlet.jsp.jstl.core.LoopTagSupport
count:代表当前记录的序号。从1开始的
index:代表当前记录的索引。从0开始
last:代表当前记录是否是最后一条记录
first:代表当前记录是否是第一条记录
2、SQL
3、XML
4、Format:国际化有关
5、Function:SUN提供的函数库EL
16个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值