JavaBean实现了Java Web应用的表示层与业务逻辑层的分离,便于代码复用,JavaBean实际上是一特殊的Java类,要求其构造方法必须为无参构造方法,成员变量均为private类型,且每个成员变量提供相应的getter与setter方法。在JSP页面中,使用<jsp:UseBean动作实现JSP页面与JavaBean"绑定",使用<jsp:setProperty>和<jsp:getProperty>动作标记设置与获取JavaBean的属性。
JavaBean 也可以实现业务逻辑,但是JavaBean更多的作为数据模版使用,在视图层与控制层之间起到数据中转站的作用。
JavaBean的应用范围
1.会话范围(session):制定为会话范围的JavaBean主要应用在跨多个页面与时间段,例如在用户注册中保留用户信息,接收反馈信息,保存用户最近页面的轨迹等,这些操作往往是一个用户在不同的JSP页面的操作,并且需要在页面之间共享数据;制定为会话范围的JavaBean保留了一些和用户对话ID相关的信息,这些信息来自临时的会话cookie,并在用户关闭浏览器时该Cookie将从客户端和服务器删除。
2.页面/请求范围(page/request):页面请求范围JavaBean主要用于处理表单。表单需要很长的时间来处理用户的输入,通常情况下用于页面接受HTTP的POST与GET请求。另外可以用于减少大型站点服务器上的负载,如果使用会话范围的JavaBean,耽搁的处理可能会消耗掉很多的系统资源。
3.应用范围(application):应用范围通常应用于服务器的部件,例如JDBC连接池,应用监视、用户计数与其他参与用户行为的类。
注意事项:
不要在JavaBean属性中设置HTML或者JavaScript脚本,因为不同的脚本兼容性不同,可能会导致浏览器崩溃。复杂的HTML脚本也可能限制JavaBean的寿命与灵活性
不要提供任何的分支选择,如果用户使用不同的系统浏览页面,可以提供一种可以替换的方法
访问JavaBean的主要动作标记
1)<jsp:useBean>:在JSP页面声明并创建JavaBean对象实例
属性:
1.id属性:代表JavaBean对象的ID,即在该JSP页面中相当一个局部变量,用此ID表示引用JavaBean对象。注:在一个回话范围内不允许两个ID相同的JavaBean对象
2.class属性:代表JavaBean的具体类名(用Eclipses复制路径粘贴即可)
3.scope:指定JavaBean作用范围,一般默认为page
2)<jsp:setProperty>:用于设置属性
属性:
1.property:对应JavaBean的属性名,也可以为“*”,表示自动匹配表单中的属性名
2.name属性:name属性值对应于<jsp:useBean>的id值。
3.value属性:即要赋的值
3)<jsp:getProperty>:动作标记获取JavaBean的属性,与<jsp:setProperty>对应属性相同
1.property属性:同上
2.name属性:同上