JSP(6)—JavaBean及案例

基础:
一、JavaBean
①用作JavaBean的类必须是具有一个公共的无参数的构造方法
②JavaBean的属性是以方法定义的形式出现的。
③JavaBean的属性名是根据Setter和getter方法名称的来的,getter或setter方法去掉前缀set或get后的
部分即为属性名,但属性名的首字母必须小写。
④JSP中定义了三个标签<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>分别用于创建
和查找JavaBean的实例对象,设置JavaBean对象的属性,读取JavaBean对象的属性。
⑤对于JSP页面来说只要一个类是具有一个公共的、无参数的构造方法,就可以把这个类当作JavaBean来使用。
⑥方法:<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>

注意使用<jsp:getProperty>跨页面传参数时需要和<jsp:useBean>一块使用,代码比较繁琐。后面可以使用EL表达式。
a.jsp:
< ! – 注意使用<jsp:getProperty>跨页面传参数的时侯需要和< jsp:useBean >一块使用 –>

<a href="bean2.jsp">To bean2 Page</a>
    <jsp:useBean id="customer" class="com.shopCart.Customer.Customer" scope="session"></jsp:useBean>
    <jsp:setProperty property="username" name="customer" value="test"/>
    <a href="b.jsp">To B Page</a>
b.jsp:
    <jsp:useBean id="customer" class="com.shopCart.Customer.Customer" scope="session"></jsp:useBean>
    username:<jsp:getProperty property="username" name="customer"/>

案例:
a.jsp

<body>

<!-- 注意使用< jsp:getProperty >跨页面传参数的时侯需要和< jsp:useBean >一块使用 -->
    <a href="bean1.jsp">To bean1 Page</a>
    <jsp:useBean id="customer" class="com.test.bean.Customer" scope="session"></jsp:useBean>
    <jsp:setProperty property="username" name="customer" value="test"/>
    <a href="b.jsp">To B Page</a>

</body>

b.jsp

<body>

    <jsp:useBean id="customer" class="com.test.bean.Customer" scope="session"></jsp:useBean>
    username:<jsp:getProperty property="username" name="customer"/>

</body>

bean1.jsp

<body>

    <jsp:useBean id="customer" class="com.test.bean.Customer" scope="session"></jsp:useBean>
    username:<jsp:getProperty property="username" name="customer"></jsp:getProperty>
</body>

bean.jsp

<body>

    <!-- 不经常使用,了解即可 -->

    <!-- 1.jsp:useBean -->
    <jsp:useBean id="customer" class="com.test.bean.Customer" scope="session"></jsp:useBean>

    <!-- 其作用如下: -->
    <%-- <%
        //1.从scope(session)中获取id(customer)属性值,赋给class(Customer)类型的id(customer)
        Customer customer1 = (Customer)session.getAttribute("customer1");
        //2.若属性值为空,则利用反射创建一个新的对象,把该对象赋给id(customer)并以id为属性名存到scope(session)中
        if(customer == null){
            customer1 = (Customer)Class.forName("com.shopCart.Customer.Customer").newInstance();
            session.setAttribute("customer", customer1);            
        } 
    %>--%>

    <!-- 2.jsp:setProperty 设置属性值-->
    <jsp:setProperty property="username" name="customer" value="test"/>

    <!-- 其作用如下: -->
    <%-- <%
        customer.setUsername("test");
    %> --%>

    <!-- 3.jsp:getProperty 获取属性值-->
    username:<jsp:getProperty property="username" name="customer"/>

    <!-- 其作用如下: -->
    <%-- <%
        customer.getUsername();
    %> --%>

    <!-- 4.为所有的属性赋值, property的值为*,则自动的为所有的属性赋值为对应的请求参数的值。在地址栏中输入
    http://localhost:8080/Demo7_Cookie_Session/ Demo10_JavaBean/bean.jsp
    ?username=root&address=Beijing&cardType=Visa&card=1234-->
    <jsp:setProperty property="*" name="customer"/>

    <!-- 5.use:Bean 的另外一种用法 -->
    <jsp:useBean id="customer2" beanName="com.test.bean.Customer" type="java.lang.Object" scope="session"></jsp:useBean>

    <!-- 其作用如下: -->
    <%
        Object customer3 = session.getAttribute("customer2");
        if(customer3 == null){
            customer2 = Class.forName("com.test.bean.Customer").newInstance();
            session.getAttribute("customer2");      
        }
    %>

    <br><br>
    address:<jsp:getProperty property="address" name="customer"/>
    <br><br>
    cardType:<jsp:getProperty property="cardType" name="customer"/>
    <br><br>
    card:<jsp:getProperty property="card" name="customer"/>
</body>
原文地址:https://www.cnblogs.com/tengpengfei/p/10453978.html