javaBean实现判断三角形并输出周长与面积-----web应用与开发

16 篇文章 2 订阅

实验名称

Javabean的应用

实验内容

设计程序,区别不同有效范围的bean。设计求三角形面积和周长的例子。本实验默认使用scope=“page”的周期。

实验目的

认识JavaBean,掌握JSP中使用JavaBean的方法;利用Javabean组件实现JSP的基本应用。

实验要求

1、 要求设计两个页面,第一个页面负责接收三角形三边数据,第二页面负责结果输出。
2、 可以使用request对象获取表单数据,也可以使用setProperty的param属性直接获取表单的数据。
3、 思考如何才可以使用setProperty中property=“*”的情况,并写在实验总结当中。
实验步骤(代码、运行结果)

代码

src的triangle包中三角形类代码

package triangle;


public class Triangle {

    private double side1;
    private double side2;
    private double side3;


 
    public String toString() {
        return "Triangle [side1=" + side1 + ", side2=" + side2 + ", side3=" + side3 + "]";
    }
   
    
    
    public double getSide1() {
		return side1;
	}
	public void setSide1(double side1) {
		this.side1 = side1;
	}

	public double getSide2() {
		return side2;
	}
	public void setSide2(double side2) {
		this.side2 = side2;
	}

	public double getSide3() {
		return side3;
	}
	public void setSide3(double side3) {
		this.side3 = side3;
	}



	public boolean isTri(double side1,double side2,double side3){
        if(side1+side2<=side3||side1+side3<=side2||side2+side3<=side1){
            return false;

        }else{
            return true;
        }
    }


    public double Sum(double side1,double side2,double side3) {
        double sum= side1+side2+side3;
        return sum;
    }


    public double Area(double side1,double side2,double side3) {
        double area;
        double p = (side1+side2+side3)/2;
        area = Math.sqrt(p*(p-side1)*(p-side2)*(p-side3));
        return area;
    }

}

初始界面代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">

    <title>My JSP 'Triangle.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
 
</head>
<body bgcolor="pink">
	<h1 style="text-align: center;text-shadow: 5px 5px 5px #0bceb1;font-size: 4em;">请输入三角形的三条边</h1>
	<form action="triangle/TriangleCheck.jsp" method="post">
	    <table width="350px" border="#19b8ef 2px solid" height="300px" align="center"   style="margin: 0 auto;text-align: center;padding: 50px 50px; ">
	        <tr>
	            <td>边1:</td>
	            <td><input type="text" name="side1"></td>	<%-- 边1 --%>
	        </tr>
	        <tr>
	            <td>边2:</td>
	            <td><input type="text" name="side2"></td>	<%-- 边2 --%>
	        </tr>
	        <tr>
	            <td>边3:</td>
	            <td><input type="text" name="side3"></td>		<%-- 边3 --%>
	        </tr>
	        <tr style="text-align: center">
	            <td class="po"><input type="submit" value="计算" ></td>
	            <td class="po"><input type="reset" vale="重置" ></td>
	        </tr>
	    </table>
	</form>
</body>

</html>

后台处理代码

是三角形输出周长与面积,不是三角形返回到初始界面

<%@ page language="java" import="java.util.*,java.lang.*,java.math.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">

    <title>My JSP 'TriangleScope.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
</head>

<body bgcolor="pink" >
	<jsp:useBean id="tr" class="triangle.Triangle" />
	<jsp:setProperty property="side1" name="tr" value="<%=Double.parseDouble(request.getParameter("side1")) %>"/>
	<jsp:setProperty property="side2" name="tr" value="<%=Double.parseDouble(request.getParameter("side2")) %>"/>
	<jsp:setProperty property="side3" name="tr" value="<%=Double.parseDouble(request.getParameter("side3")) %>"/>
	<%
	    if(tr.isTri(tr.getSide1(),tr.getSide2(),tr.getSide3())){
	
	        double length = tr.Sum(tr.getSide1(),tr.getSide2(),tr.getSide3());
	        double area = tr.Area(tr.getSide1(),tr.getSide2(),tr.getSide3());
	%>
	<div>
	    <table width="600px" height:150px style="margin: 0 auto;display: flex;font-size: 3em" align="center">
	        <tr>
	            <td>三角形的周长是:</td>
	            <td><%=length %></td>
	        </tr>
	        <tr>
	            <td>三角形的面积是:</td>
	            <td><%=area %></td>
	        </tr>
	    </table>
	</div>
	<%
	    }else{
	    	System.out.println("不是三角形");
	        response.sendRedirect("Triangle.jsp");
	    }
	%>
	


</body>
</html>

运行结果

初始界面

在这里插入图片描述

输入数字构成三角形

在这里插入图片描述
在这里插入图片描述

输入数字构不成三角形

在这里插入图片描述
在这里插入图片描述

总结

setProperty中property=“*”的情况

该形式是设置Bean 属性的快捷方式。在Bean 中属性的名字,类型必须和request对象中的参数名称相匹配。由于表单中传过来的数据类型都是String 类型的,Jsp内在机制会把这些参数转化成Bean属性对应的类型。
property = "*"表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。

scope取值

scope(范围)即JSP 中变量或对象的作用域,有四个取值:page、request、session、application,这四个取值范围是从小到大排列的。

page:当前访问的页面内有效,关闭页面重新打开或刷新后变量或对象重置;
request:变量或对象存在于一次完整HTTP 请求与响应期间,完成后被释放。所以在forward跳转的几个页面内都有效,但sendRedirect方式跳转所返回的页面内无效,因为这种方式是完整的两次HTTP 请求与响应(A.jsp请求—>B(使用sendRedirect(“…/C.jsp”)—>响应A.jsp后请求C.jsp—>C.jsp—>响应A.jsp,那么在A.jsp中范围为request的变量在返回的C.jsp中将不可用)。(说明:include指令是静态包含,所以包含jsp页面时融合为一个整体)
session:会话期间。
application:服务启动期间。

  • 0
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: 可以使用JavaBean计算三角形面积周长。 首先,需要定义一个Triangle类,包含三个属性:a、b、c,分别表示三角形的三条边长。 然后,在Triangle类中定义两个方法:getArea()和getPerimeter(),分别用于计算三角形面积周长。 getArea()方法的实现可以使用海伦公式,即: s = (a + b + c) / 2 area = sqrt(s * (s - a) * (s - b) * (s - c)) 其中,s表示半周长,sqrt表示求平方根。 getPerimeter()方法的实现比较简单,直接返回三条边长的和即可。 下面是Triangle类的代码示例: public class Triangle { private double a; private double b; private double c; public double getA() { return a; } public void setA(double a) { this.a = a; } public double getB() { return b; } public void setB(double b) { this.b = b; } public double getC() { return c; } public void setC(double c) { this.c = c; } public double getArea() { double s = (a + b + c) / 2; return Math.sqrt(s * (s - a) * (s - b) * (s - c)); } public double getPerimeter() { return a + b + c; } } 使用Triangle类计算三角形面积周长的示例代码如下: Triangle triangle = new Triangle(); triangle.setA(3); triangle.setB(4); triangle.setC(5); double area = triangle.getArea(); double perimeter = triangle.getPerimeter(); System.out.println("三角形面积为:" + area); System.out.println("三角形周长为:" + perimeter); 输出结果为: 三角形面积为:6. 三角形周长为:12. ### 回答2: JavaBean是一种由Java语言编写的可重用软件组件,通常用于通过图形用户界面(GUI)与用户进行交互。在本文中,我们将使用JavaBean三角形面积周长进行计算。 要计算三角形面积周长,我们需要知道三角形的三边长度。使用JavaBean的优势是我们可以将这些长度作为属性传递给组件,并从代码中分离它们,这样就可以方便地重复使用该组件。 我们可以从开始创建一个简单的JavaBean类开始。下面是一个例子: public class TriangleCalculator { private double sideA; private double sideB; private double sideC; //Constructor public TriangleCalculator() {} //Getter and Setter Methods public void setSideA(double sideA) { this.sideA = sideA; } public double getSideA() { return sideA; } public void setSideB(double sideB) { this.sideB = sideB; } public double getSideB() { return sideB; } public void setSideC(double sideC) { this.sideC = sideC; } public double getSideC() { return sideC; } //Methods to calculate area public double calculateArea() { double s = (sideA + sideB + sideC) / 2; double area = Math.sqrt(s * (s - sideA) * (s - sideB) * (s - sideC)); return area; } //Method to calculate perimeter public double calculatePerimeter() { double perimeter = sideA + sideB + sideC; return perimeter; } } 在上面的代码中,我们定义了一个TriangleCalculator类,其中包含了三条边的长度(称为sideA、 sideB和sideC)。我们还定义了一个calculateArea()方法,用于计算三角形面积,以及calculatePerimeter()方法,用于计算三角形周长。 我们可以将上面的代码保存为TriangleCalculator.java,并将其编译成TriangleCalculator.class文件。 现在,我们可以将该类作为JavaBean组件使用。下面是一个简单的应用程序,用于使用TriangleCalculator计算三角形面积周长: import java.util.Scanner; public class TriangleApplication { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); TriangleCalculator calculator = new TriangleCalculator(); System.out.print("Enter the length of side A: "); calculator.setSideA(scanner.nextDouble()); System.out.print("Enter the length of side B: "); calculator.setSideB(scanner.nextDouble()); System.out.print("Enter the length of side C: "); calculator.setSideC(scanner.nextDouble()); System.out.println("Area: " + calculator.calculateArea()); System.out.println("Perimeter: " + calculator.calculatePerimeter()); } } 在上面的代码中,我们创建了一个Scanner对象,该对象允许用户从控制台输入三角形的三个边长。我们然后创建了一个TriangleCalculator对象,并将用户输入的值用作其属性。最后,我们调用了calculateArea()和calculatePerimeter()方法,并将结果输出到控制台。 我们可以在IDE中运行上述代码,并输入三角形的边长,从而获取计算出来的三角形面积周长。 综上所述,使用JavaBean计算三角形面积周长是一个相对简单的任务。我们只需要定义一个JavaBean类,定义其属性和相应的方法,然后在需要时将其用作组件即可。在这种情况下,我们定义了一个TriangleCalculator类,并将其用作计算三角形面积周长的组件。 ### 回答3: JavaBean是一种Java语言规范,用于编写可重用的软件组件。在本题中,我们可以使用JavaBean来编写一个计算三角形面积周长的组件。 首先,我们需要定义一个Triangle类作为JavaBean,该类包含三个属性:a、b和c,分别表示三角形的三边长。同时,该类还需要提供get和set方法来访问和设置这些属性。 然后,我们可以在Triangle类中定义两个方法来计算三角形面积周长。这里我们分别使用海伦公式和勾股定理来计算三角形面积周长。 接下来,我们可以使用该组件来计算任意三角形面积周长。只需要在其他程序中实例化该Triangle类,设置三边长,然后调用计算方法即可。 例如,我们可以编写一个简单的控制台程序来使用该组件: ``` public class Main { public static void main(String[] args) { Triangle triangle = new Triangle(); triangle.setA(3); triangle.setB(4); triangle.setC(5); System.out.println("Triangle area: " + triangle.getArea()); System.out.println("Triangle perimeter: " + triangle.getPerimeter()); } } ``` 在上面的程序中,我们实例化了一个Triangle对象,设置三边长为3、4、5,然后分别输出三角形面积周长。 总之,JavaBean可以方便地编写可重用的软件组件。在本题中,我们使用JavaBean编写了一个计算三角形面积周长的组件,可以方便地在其他程序中使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辣椒酱.

感谢支持,我会继续努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值