JavaWeb学习之JavaBean

5.1 编写JavaBean

  • JavaBean的定义

是遵循一定标准、用Java语言编写的一个类,该类的一个实例称为一个JavaBean,称Bean。JavaBean具有可重用、升级方便,不依赖平台等特点。JavaBean又可以分为业务bean和数据bean。业务bean用于封装业务逻辑,数据库操作:数据bean用于封装数据。

  • 简单来说,编写一个javabean就是编写一个java类。当然,也不是简单的java类那么简单,还需要遵循以下要求
  1. 类成员变量必须要有获取和更改其值的方法。拿name属性来书,必须提供以下两种方法
getName():用来获取属性name
setName():用来设置属性name
  1. 对于boolean类型的成员变量,允许使用is去代替get或是set
  2. 类中方法的访问权限必须是public
  3. 如果有构造方法,必须有一个无参构造方法。
//对于Car类来说,必须要有以下构造方法
public Car({
    
    
	// 内容视情况而定,可以不写,也可以直接在这里给成员变量进行赋值
}

5.2 在JSP中使用JavaBean

  • 使用前准备,使用page指令的import导入创建的bean的类
<%@ page import=“com.bean.*”>

5.2.1 动作标记useBean

  • useBean有点类似于Java的实例化
    分析下面的程序:
<jsp:useBean id="bean的名字" class="创建Bean的类" scope="bean的有效范围" />

id有点类似于我们所写的类的实例化,例如车中宝马这个实例
class有点类似于Car引用
scope用来表示用用范围

  • 下面是我创建的某个例子,有一个Rectangle的java类和一个名为example5_2的测试文件

Rectangle类

package com.bean;

public class Rectangle {
    
    
    private double length;
    private double width;
    public  Rectangle(){
    
    
        length =20;
        width = 10;
    }

    public double getWidth() {
    
    
        return width;
    }

    public void setWidth(double width) {
    
    
        this.width = width;
    }

    public double getLength() {
    
    
        return length;
    }

    public void setLength(double length) {
    
    
        this.length = length;
    }
    public double computerArea(){
    
    
        return length*width;
    }
    public double computerLength(){
    
    
        return (length+width)*2;
    }
}

example5_2.jsp测试文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>example5_2.jsp</title>
</head>
<body>
    <jsp:useBean id="rectangle" class="com.bean.Rectangle" scope="page"/>
    <p>矩形的长是:<%=rectangle.getLength()%></p>
    <p>矩形的宽是:<%=rectangle.getWidth()%></p>
    <p>矩形的面积是:<%=rectangle.computerArea()%></p>
    <p>矩形的周长是:<%=rectangle.computerLength()%></p>
</body>
</html>

运行结果:

在这里插入图片描述

5.2.2 动作标记getProperty

  • 通过getProperty动作标记可以可以获取你创建的实例的属性,语法格式如下
<jsp:getProperty name= "bean的名字" property= "bean的属性" />

或者

<jsp:getProperty name="bean的名字" property ="bean的属性" />
</jsp:getproperty>
  • 如果将其放在jsp文件中,那么其值显示就为对应属性的值
  • 为了验证以上说法,我创建了NewRetangle类和useGetProperty.jsp文件

NewRetangle类

package com.bean;

public class NewRectangle {
    
    
    private double length;
    private double width;
    double rectangleArea;
    double rectangleLength;
    public NewRectangle(){
    
    
        length = 20;
        width =10;
    }

    public double getLength() {
    
    
        return length;
    }

    public void setLength(double length) {
    
    
        this.length = length;
    }

    public double getWidth() {
    
    
        return width;
    }

    public void setWidth(double width) {
    
    
        this.width = width;
    }
}

useGetProperty.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>useGetProperty.jsp</title>
</head>
<body>
  <jsp:useBean id="pig" class="com.bean.NewRectangle" scope="page"/>
  <%pig.setLength(30);
  pig.setWidth(20);
  pig.computerArea();
  pig.computerLength();%>
  <p>矩形的长是<jsp:getProperty name="pig" property="length"/></p>
  <p>矩形的宽是<jsp:getProperty name="pig" property="width"/></p>

</body>
</html>

运行结果:

在这里插入图片描述

5.2.4 实践环节—使用JavaBean计算三角形周长和面积

  • 创建一个Java类Triangle
 package com.bean;

public class Triangle {
    
    
    private double edge1;
    private double edge2;
    private double edge3;

    public double getEdge3() {
    
    
        return edge3;
    }

    public void setEdge3(double edge3) {
    
    
        this.edge3 = edge3;
    }

    public double getEdge2() {
    
    
        return edge2;
    }

    public void setEdge2(double edge2) {
    
    
        this.edge2 = edge2;
    }

    public double getEdge1() {
    
    
        return edge1;
    }

    public void setEdge1(double edge1) {
    
    
        this.edge1 = edge1;
    }


    public double computerPerimeter(){
    
    
        return edge1+edge2+edge3;
    }
}
  • 创建输入页面,用来输入三角形的三边inputTriangle.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>inputTriangle.jsp</title>
</head>
<body>
    <form action="showTriangle.jsp" name="" method="post">
        <p>输入三角形三边</p>
        边A<input name="edg1" type="text"><br>
        边B<input name="edg2" type="text"><br>
        边C<input name="edg3" type="text"><br>
        <input type="submit" name="submit" value="提交">
        <input type="reset" name="reset" value="重新输入">
    </form>
</body>
</html>
  • 创建输出页面,通过setProperty,setProperty等动作标记得出结果showTriangle
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>showTriganle.jsp</title>
</head>

<body>
    <%-- 获取表单提交的三条边--%>
    <%
        double edg1=Float.parseFloat(request.getParameter("edg1"));
        double edg2=Float.parseFloat(request.getParameter("edg2"));
        double edg3=Float.parseFloat(request.getParameter("edg3"));

    %>
    <%--进行三角形判断--%>
    <%--创建三角形对象--%>
    <jsp:useBean id="tri1" class="com.bean.Triangle" scope="page"/>
    <%--设置三边长度--%>
    <jsp:setProperty name="tri1" property="edge1" value="<%=edg1%>"/>
    <jsp:setProperty name="tri1" property="edge2" value="<%=edg2%>"/>
    <jsp:setProperty name="tri1" property="edge3" value="<%=edg3%>"/>
    <p>三角形的三边是:</p>
    边A:<jsp:getProperty name="tri1" property="edge1"/>
    边B:<jsp:getProperty name="tri1" property="edge2"/>
    边C:<jsp:getProperty name="tri1" property="edge3"/><br><br>
    <%
        //判断是否能构成三角形
        if (edg1+edg2>edg3&&edg1+edg3>edg2&&edg3+edg2>edg1){
            out.print("这三边能构成三角形吗? true<br><br>");
            out.print("周长是:"+tri1.computerPerimeter());
        }else {
            out.print("这三边能构成三角形吗? false<br>");
        }
    %>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_57663206/article/details/127079941