JavaBean的学习



可以在<jsp:setProperty>中通过param参数为bean的属性动态赋值。
<jsp:setProperty property="age" name="person" param="helloword"/> <br>
  <jsp:getProperty property="age" name="person"/>
对应的servlet代码:
 org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person"), "age", request.getParameter("helloworld"), request, "helloworld", false);

JavaBean的范围:
Scope属性决定了JavaBean对象的存活范围。
scope可选值(page  request  session  application);

page:只能在同一个页面内被转发;客户每次请求访问jsp页面时,都会创建一个JavaBean对象。
 page属性生命期结束的标志:
a: 客户请求访问的当前jsp页面通过<forward>标记将请求转发到另一个页面;
b:客户请求访问的当前的JSP页面执行完并向客户端发回响应。

request:在请求对象存活期间,可以访问这个范围内的对象。(客户请求访问的当前jsp页面;和当前jsp页面共享同一个客户请求的页面,包含<%@ include>指令 以及<forward>指令)。
 当所有的共享同一个客户请求的JSP页面执行完毕并向客户端返回响应时,JavaBean对象结束生命周期。

session:再回话期间(不关闭这个浏览器),可以访问这个范围的对象。
注意:当JavaBean放在session范围内。

application:在web程序运行期间(服务器不关闭),可以访问这个范围的任何对象。

注意在这个代码中只要不停的换scope="{page,request,session,application}"这几个变量,就能从jsp页面的变化和servlet源代码的变化,体会到这几个属性的不同。

Student.java

package com.javabean.test;

public class Student
{
private long classNo;

private String name;

private int age;

private boolean sexy;

public Student()
{
classNo = 000101;    

name = "mingming";

age = 20;

sexy = true;
}
public long getClassNo()
{
return classNo;    
}
public void setClassNo(long classNo)
{
this.classNo = classNo;
}
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 boolean isSexy()
{
return sexy;    
}
public void setSexy(boolean sexy)
{
this.sexy = sexy;    
}
}

javabean.jsp

<%@ page language="java" import="com.javabean.test.Student"
    pageEncoding="UTF-8"%>
<html>
    <body>
        
        <%-- 引用自己编写的javaBean生成的bean组件 --%>
        <jsp:useBean id="student" scope="page"
            class="com.javabean.test.Student" />
        
        <%=student.getName()%><br>
        
        <%
            student.setName("hheheh");
        %>
        <%-- 用getProperty动作来返回bean组件的属性值 --%>
        <jsp:getProperty name="student" property="classNo" />
        <br>
        <jsp:getProperty name="student" property="name" />
        <br>
        <jsp:getProperty name="student" property="age" />
        <br>
        <jsp:getProperty name="student" property="sexy" />
        <br>
        <%-- 取属性值 --%>
        <%=student.getClassNo()%>
        <br>
        <%=student.getName()%>
        <br>
        <%=student.getAge()%>
        <br>
        <%=student.isSexy()%>
        <br>
        
        <jsp:useBean id="date" class="java.util.Date" scope="application"></jsp:useBean>
        
        <%= date.toLocaleString() %>    
    </body>
</html>

posted @ 2013-04-05 12:44  坚固66  阅读(143)  评论(0编辑  收藏  举报