1使得HTML与Java程序分离,这样便于维护代码。如果把所有的程序代码都写到JSP网页中,会使得代码繁杂,难以维护
•可以降低开发JSP网页人员对Java编程能力的要求
•JSP侧重于生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率
2一个标准的JavaBean有以下几个特性:
–JavaBean是一个公共的(public)类–JavaBean有一个不带参数的构造方法
–JavaBean通过setXXX方法设置属性,通过getXXX方法获取属性
(底层通过反射实现set get方法)
3 JavaBean使用
Step1:定义JavaBean类
package com.songxu.severlet;
public class JavaBeanTest
{
private String name="bingjia";
private int age=24;
private int years=7;
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 int getYears()
{
return years;
}
public void setYears(int years)
{
this.years = years;
}
public String getLove()
{
return "i have liked "+name+"for"+years+"years";
}
}
Step2 :引用javabean的类
<%@ page language="java" pageEncoding="UTF-8" import="com.songxu.severlet.JavaBeanTest"%>
Step3:定义JavaBean对象
<jsp:useBean id="beanTest" class="com.songxu.severlet.JavaBeanTest"></jsp:useBean>
Step4 使用JavaBean对象
<jsp:getProperty property="age" name="beanTest"/><br>
<jsp:getProperty property="years" name="beanTest"/><br>
<jsp:setProperty property="age" name="beanTest" value="23"/>
<jsp:getProperty property="age" name="beanTest"/><br>
4可以在<jsp:setProperty>中通过param参数为bean的属性动态赋值。
<jsp:setProperty property="age" name="beanTest" param="hi"/>
对应的Servlet代码是:
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("beanTest"), "age", request.getParameter("hi"), request, "hi", false);
5scope属性决定了JavaBean对象存在的范围。scope的可选值包括:
–page(默认值)
客户请求访问的当前JSP网页通过<forward>标记将请求转发到另一个文件
客户请求访问的当前JSP页面执行完毕并向客户端发回响应。
–request
客户请求访问的当前JSP网页
和当前JSP网页共享同一个客户请求的网页,即当前JSP网页中<%@ include>指令以及<forward>标记包含的其他JSP文件
当所有共享同一个客户请求的JSP页面执行完毕并向客户端发回响应时,JavaBean对象结束生命周期。
JavaBean对象作为属性保存在HttpRequest对象中,属性名为JavaBean的id,属性值为JavaBean对象,因此也可以通过HttpRequest.getAttribute()方法取得JavaBean对象,例如:
CounterBean obj=(CounterBean)request.getAttribute(“myBean”);
–session
JavaBean对象被创建后,它存在于整个Session的生存周期内,同一个Session中的JSP文件共享这个JavaBean对象。
以通过HttpSession.getAttribute()方法取得JavaBean对象
CounterBean obj=(CounterBean)session.getAttribute(“myBean”);
–application
JavaBean对象被创建后,它存在于整个Web应用的生命周期内,Web应用中的所有JSP文件都能共享同一个JavaBean对象。
可以通过application.getAttribute()方法取得JavaBean对象,例如:
CounterBean obj=
(CounterBean)application.getAttribute("myBean");