javabean使用技巧

avabean简介
Javabeans就是符合某种特定规范的java类,使用javabean的好处是解决代码重复编写,减少代码冗余,提高代码的维护性。

javabean的设计原则
公有类,无参的公有构造方法,属性私有,get,set方法,如下
public class Student
{
private String name,
public Student()
{

}
public void setName(String name){this.name=name;}
public String getName(){return this.name;}
}

jsp动作标签
存取javabean有关的
<jsp:useBean><jsp:setProperty><jsp:getProperty>

在jsp页面中如何使用javabeans
1:像使用普通java类一样,创建javabean实例

package com.entity;
//用户类的javabean
public class Users {

    private String name;
    private String password;
    public Users(){
        
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
}

引用<%@page import="com.entity.Users"%>

   <%
     Users u=new Users();
     u.setName("admin");
     u.setPassword("123");
     %>
    <h1>使用普通方法创建javabean实例</h1>
    用户名:<%=u.getName() %>
    密码:<%=u.getPassword() %>

2:在jsp页面中使用jsp动作标签使用javabean

<jsp:useBeans>作用:在jsp页面中实例化
<jsp:useBean id="标识符" class="java类名" scope="作用范围"/>

<jsp:useBean id="myuses" class="com.entity.Users"/>
    <h1>使用javabean动作标签创建javabean实例</h1>
    用户名:<%=myuses.getName() %>
    密码:<%=myuses.getPassword()%> //可以获取Users中的值

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

<jsp:setProperty>作用:给已经实例话的javabean的对象属性进行赋值
<jsp:setProperty name="javaBean实例名" property="*"/>(跟表单关联,自动匹配所有属性)

<jsp:setProperty name="javaBean实例名" property="javabean属性名"/>(跟表单关联,匹配部分属性)

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

假如我们创建login的表单

<form name="loginform" action="doLogin.jsp" method="post">
   <table>
    <tr>
      <td>用户名</td>
      <td><input type="text" name="name" value=""></td>
    </tr>
    <tr>
      <td>密码</td>
      <td><input type="password" name="password" value=""></td>
    </tr>
    <tr>
      <td colspan=2 align="center"><input type="submit" value="login"></td>
      
    </tr>
   </table>
   </form>

doLogin.jsp展示login传递过来的用户名和密码通过setProperty方法

<jsp:useBean id="myuses" class="com.entity.Users" scope="page" />
    <%--根据表单自动匹配 --%,property="*",表单的名为username和password和
     javabean的Users类的name,password自动匹配赋值--%>
    <jsp:setProperty name="myuses" property="*" />
    用户名:<%=myuses.getName()%>
    密码:<%=myuses.getPassword()%>

以下的setProperty与表单无关,手工赋值 

<jsp:setProperty name="myuses" property="name" value="jack" />
 <jsp:setProperty name="myuses" property="password" value="123" />

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

 <jsp:getProperty>作用:获取指定javabean对象的属性值
<jsp:getProperty name="javabean实例名" property="属性名"/>

<h2>使用getProperty获取javabean指定的属性的值</h2>
    用户名:<jsp:getProperty property="name" name="myuses" />
    密码:<jsp:getProperty property="password" name="myuses" />

javabean的四个作用域范围
使用usebeans的scope属性可以用来指定javabean的作用范围
page在当前页面有效
request可以通过HttpRequest.getAttribute()方法获得javabean对象
session可以通过HttpSession.getAttribute()方法获得javabean对象
application可以通过application.getAttribute()方法获得javabean对象

<h1>javabean的四个作用域范围</h1>
    <jsp:useBean id="myuses" class="com.entity.Users" scope="application" />
    用户名:<jsp:getProperty property="name" name="myuses" />
    密码:<jsp:getProperty property="password" name="myuses" />
    <%--使用内置对象获取用户名和密码 --%>
用户名:<%=((Users)application.getAttribute("myuses")).getName() %>
用户名:<%=((Users)application.getAttribute("myuses")).getPassword() %>

用户名:<%=((Users)session.getAttribute("myuses")).getName() %>
用户名:<%=((Users)session.getAttribute("myuses")).getPassword() %>

用户名:<%=((Users)request.getAttribute("myuses")).getName() %>
用户名:<%=((Users)request.getAttribute("myuses")).getPassword() %>
<a href="scope.jsp">javabean的四种作用域测试</a>
    <%
        request.getRequestDispatcher("scope.jsp")
                .forward(request, response);
    %>
原文地址:https://www.cnblogs.com/linhong/p/4256842.html