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

实验名称

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:服务启动期间。

猜你喜欢

转载自blog.csdn.net/m0_46222433/article/details/129915932