JavaBean

简介:

JavaBean就是符合某种特定规范Java类。
使用JavaBean可以解决代码的重复编写,减少代码冗余,功能区分明确,提高代码的维护性。
设计原则:
1)提供一个公有的无参构造函数。
2)需要被序列化并且实现了Serializable接口。
3)有一系列可读写属性。
4)getter和setter方法封装属性
eg:

// User.java
public class Users {
    private String username;
    private String password;
    public Users()
    {
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }   
}

在JSP中使用JavaBean有两种方法:
1.. 在src下按照规则新建一个JavaBean类,然后在WebRoot下对应的jsp文件中,在声明里新建一个JavaBean类,然后赋值、使用。

<body>
    <h1>使用普通方式创建javabean的实例</h1>
    <hr>
    <%
        Users user = new Users();
        user.setUsername("admin");
        user.setPassword("123456");
     %>
            用户名:<%=user.getUsername() %><br>
           密码:<%=user.getPassword() %><br>
  </body>

2.. 使用<jsp:useBean> 动作标签,如下useBean动作

与存取JavaBean有关的动作元素:

1. useBean 动作
<jsp:useBean> 标签可以在Jsp中声明一个JavaBean,然后使用。声明后,JavaBean对象就成了脚本变量,可以通过脚本元素或其他自定义标签来访问。
格式:
<jsp:useBean id="标识符(类似于Java中的变量名)" class="java类名(需要将包名一同写入)" scope="作用范围(默认是page)">
其中,根据具体情况,scope的值可以是page,request,session或application。id值可任意只要不和同一JSP文件中其它<jsp:useBean>中id值一样就行了。

  <body>
  <jsp:useBean id="myUsers" class="com.po.Users" scope="page" />
    <h1>使用useBean动作方式创建javabean的实例</h1>
    <hr>
         用户名:<%=myUsers.getUsername() %><br>
         密码:<%=myUsers.getPassword() %><br>
  </body>

2. setProperty 动作
<jsp:useBean>标签主体中使用 <jsp:setProperty/> 标签来调用 setter 方法

3. getProperty 动作
<jsp:useBean>标签主体中使用 <jsp:getProperty/> 标签来调用 getter 方法

<body>
    <jsp:useBean id="user" class="com.po.Users" scope="page"></jsp:useBean>

    //1.根据表单匹配所有属性  
    <jsp:setProperty name="user" property="*" />  

    //2.根据表单匹配指定属性 
    <jsp:setProperty name="user" property="username" />  

    //3.手工赋值给属性,与表单无关 /
    <jsp:setProperty name="user" property="username" value="zhangsan"/> 
    <jsp:setProperty name="user" property="password" value="123456"/>

    //4.通过url传参给属性赋值 
    <jsp:setProperty name="user" property="password" param="mypass"/>

     用户名:<%=user.getUsername() %> <br>
     密码:<%=user.getPassword() %>
  </body>

其中第四种方法,param为给password属性起的变量名,在url中要通过设置action:xx.jsp?mypass=xxxx 给属性赋值

JavaBean的四个作用域范围:

  • page范围:与当前页面相对应,JavaBean的生命周期存在于一个页面之中,当页面关闭时JavaBean被销毁。
  • request范围:与JSP的request生命周期相对应,JavaBean的生命周期存在于request对象之中,当request对象销毁时JavaBean也被销毁。
  • session范围:与JSP的session生命周期相对应,JavaBean的生命周期存在于session会话之中,当session超时或会话结束时JavaBean被销毁。
  • application范围:与JSP的application生命周期相对应,在各个用户与服务器之间共享,只有当服务器关闭时JavaBean才被销毁。

这4种作用范围与JavaBean的生命周期息息相关,当JavaBean被创建后,通过<jsp:setProperty>标签与<jsp:getProperty>标签调用时,将会按照page、request、session和application的顺序来查找这个JavaBean实例,直至找到一个实例对象为止,如果在这4个范围内都找不到JavaBean实例,则抛出异常。

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页