Javaweb开发从入门到实战 第五章 所有内容加 实践环节--使用JavaBean计算三角形的面积和周长

本文详细介绍了如何在JSP中使用useBean、getProperty和setProperty动作标记来操作JavaBean对象的属性。通过示例展示了创建并初始化Bean、获取和设置Bean属性的方法,以及如何从表单接收用户输入并更新Bean属性。最后,给出了一个计算三角形面积和周长的完整示例,强调了Bean在处理用户输入和计算逻辑中的应用。
摘要由CSDN通过智能技术生成

一:动作标记useBean

useBean标记格式如下:

<jsp:useBean id="ben的名字" class="创建ben的类" scope="bean的有效范围"></jsp:useBean>

上面这个说的不够详细 用图来说明一下

接着我们来写一下 课本上的例子 :创建一个 ben java文件 Rectangle.java  和example5-2.jsp

1.在java Resource -----src  -----右键 new-----Packge  名字 是 com.bean(这里什么包名都可 )

5-1 矩形 对象 Rectangle.java

package com.bean;

// 就是构建 对象函数
public class Rectangle {
	private double lenght;
	private double width;

//	使用无参构造的方法 给 对象赋值
	public Rectangle() {
		lenght = 20;
		width = 10;
	}

//	让 构造的对象 拥有 访问和和改写的功能
	public double getLenght() {
		return lenght;
	}

	public void setLenght(double lenght) {
		this.lenght = lenght;
	}

	public double getWidth() {
		return width;
	}

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

//	构建矩形的面积方法
	public double computArea() {
		return lenght * width;
	}

// 构建 矩形 周长的方法
	public double computerlength() {
		return (lenght + width) * 2;
	}

}

5-2example5-2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>example5_2.jsp</title>
</head>
<body>
<!-- 下面这个bean  相当于 在 java 界面中  的 
Reatangle rectangle = new Rectangle(); 重新 构建 对象
jsp:usebean 中  ID 相当于 被赋值的对象  这里相当于  rectangle
而	class  相当于 需要连接的类对象 就是 编辑的class文件 
  而  scope 指的是 JavaBean 的使用范围 page值得 是 只在 当前页面使用
 -->
<jsp:useBean id="rectangle" class="com.bean.Rectangle" scope="page"></jsp:useBean>
<p>矩形的长是:<%=rectangle.getLenght() %>
<p>矩形的宽是:<%=rectangle.getWidth() %>
<p>矩形的面积:<%=rectangle.computArea() %>
<p>矩形的周长:<%=rectangle.computerlength() %>

</body>
</html>

解释 rectangle 的作用就和 下图一致

 

运行结果:

二:动作标记getProperty

语法格式:

<jsp:getProperty property="bean的属性" name="bean的名字"/>

解释一下 语法格式

这里运行一下 课本上 5-3的例子 来看一下

新建NewRectangle.java

package com.bean;

public class NewRectangle {
	double length;
	double width;
	double rectangleArea;
	double rectanglelength;

	public NewRectangle() {
		// TODO Auto-generated constructor stub
		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;
	}

	public double getRectangleArea() {
		return length * width;
	}

	public double getRectanglelength() {
		return 2 * (width + length);
	}

}

新建useGetProperty.jsp 文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>useGetProperty</title>
</head>
<body>
<!-- GetProperty 相当于 修改了对象的参数值  property指定的是修改都得值 name 指定的范围是pid   -->
<jsp:useBean id="pid" class="com.bean.NewRectangle" scope="page"></jsp:useBean>
<%pid.setLength(30); %>
<%pid.setWidth(20); %>
<p>矩形的长是:<jsp:getProperty property="length" name="pid"/>
<p>矩形的宽是:<jsp:getProperty property="width" name="pid"/>
<p>矩形的面积:<jsp:getProperty property="rectangleArea" name="pid"/>
<p>矩形的周长:<jsp:getProperty property="rectanglelength" name="pid"/>
</body>
</html>

运行结果:

三:动作标记setProperty

语法格式

<jsp:setProperty property="bean的属性" name="bean的名字" value="字符串" />

解释语法

 

这里运行 课本上的5-4例子 来看一下 

1.新建一个Car.java

package com.bean;

public class Car {
     String tradeMark;
     String number;
	public String getTradeMark() {
		return tradeMark;
	}
	public void setTradeMark(String tradeMark) {
		this.tradeMark = tradeMark;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}

     
}

 

2.建一个car.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!--jsp:setProperty  属性property 对象的参数数 指定 name usebean中的名字value 给
	java类中的参数指定数值
	
	同样也可以在界面 定义一个参数 赋值 引用 在 jsp:getProperty的时候 指定 name为本界面的
	 ID即可  同样可以达到修改的目的 -->
	<jsp:useBean id="smallCar" class="com.bean.Car" scope="page"></jsp:useBean>
	<%
	String carNo = "京A8888";
	%>
	<%-- 使用setProperty标记设置 smallCar 的tradeMark 属性值为“宝马x6” --%>
	<jsp:setProperty property="tradeMark" name="smallCar" value="宝马x6" />
	<%-- 使用setProperty标记设置 smallCar的number属性值为carNo --%>
	<jsp:setProperty property="number" name="smallCar" value="<%=carNo%>" />
	汽车的品牌是:<jsp:getProperty property="tradeMark" name="smallCar" />
	<br />汽车的牌号是:<jsp:getProperty property="number" name="smallCar" />
</body>
</html>

运行结果:

 

四:接下来课本是给了一个 利用form表单的   来提交chass里面的参数的例子 :大体意思是在 表单里面 输入数据 而表单里面的name 值关联的是 类文件的参数名 ;然后提交到jsp文件中去 jsp文件通过 setProperty 这个标记 修改 class类文件 的属性 相当于Test1 test1 = new Test1();  test1.setNameString("王五"); 然后在通过 getProperty 指定class文件中的属性参数来输出 出来;  通过代码看一下  例:5-5

1)新建一个inputerCar.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="showCar.jsp" method="post">
请输入汽车品牌:
 <input type = "text" name="tradeMark"/>
 <br>
 请输入汽车牌号:<input type="text" name="number" /> <br>
 <input type="submit" value="提交" />
</form>
</body>
</html>

2.)页面文件 showCar.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 实现的原因  1首先 新建了对象 2.通过jsp:setProperty 的性质 匹配form表单中的值
3.再用 jsp:getProperty调用输出-->
	<%
	request.setCharacterEncoding("utf-8");
	%>
	<%--通过Http表单的参数值设置bean的属性(表单参数与属性自动匹配) --%>
	<jsp:useBean id="smallCar" class="com.bean.Car" scope="page"></jsp:useBean>
	<jsp:setProperty property="*" name="smallCar" />
	汽车品牌是:<jsp:getProperty property="tradeMark" name="smallCar" />
	<br> 汽车的牌号是:<jsp:getProperty property="number" name="smallCar" />
</body>
</html>

3)里面的useBean 文件 class文件所连接的 class文件是之前 写过的 Car.java文件

运行结果图;‘

五:5.2.4实践环节---------使用javabean计算三角形的面积和周长

1.)首先需要一个三角形 对象   这个对象 他有 3个边  还需要 周长 和面积 这些 都是他的属性

新建Triangle.java 文件

package com.bean;

//建立三角形实体对象
public class Triangle {
	double edgeA;
	double edgeB;
	double edgeC;
	boolean judge;
	double Perimeter;

	public double getPerimeter() {
		return Perimeter;
	}

	public void setPerimeter(double perimeter) {
		Perimeter = perimeter;
	}



	public boolean isJudge() {
		if (edgeA + edgeB > edgeC && edgeA + edgeC > edgeB && edgeB + edgeC > edgeA) {
			return true;
		} else {
			return false;
		}
	}

	public void setJudge(boolean judge) {
		this.judge = judge;
	}

	public double getArea() {
		double s = ((edgeA + edgeB + edgeC) / 2f);
		double Area = Math.sqrt(s * (s - edgeA) * (s - edgeB) * (s - edgeC));
		return Area;
	}

	public double getEdgeA() {
		return edgeA;
	}

	public void setEdgeA(double edgeA) {
		this.edgeA = edgeA;
	}

	public double getEdgeB() {
		return edgeB;
	}

	public void setEdgeB(double edgeB) {
		this.edgeB = edgeB;
	}

	public double getEdgeC() {
		return edgeC;
	}

	public void setEdgeC(double edgeC) {
		this.edgeC = edgeC;
	}

}

2) 有了 对象之后 需要页面看的到的一些  提供用户输入的form表单

这里建立一个 inputTriangle.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>inputTriangle.jsp</title>
</head>
<body>
	<form action="showTriangle.jsp" method="post">
		输入三角形的三边: <br> 边A:<input typr="test" name="edgeA" /> <br>
		边B:<input typr="test" name="edgeB" /> <br> 边C:<input typr="text"
			name="edgeC" /> <br> <input type="submit" value="提交" />
	</form>

</body>
</html>

3)有了以上准备之后 还需要 一个计算后承载的jsp显示界面 

这里写的是  showTriangle.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>showTriangle</title>
</head>
<body>
	<jsp:useBean id="smallTriangle" class="com.bean.Triangle" scope="page"></jsp:useBean>
	<jsp:setProperty property="*" name="smallTriangle" />
	三角形的边是:
	<br> 边A:<jsp:getProperty property="edgeA" name="smallTriangle" />
	边B:<jsp:getProperty property="edgeB" name="smallTriangle" />
	边C:<jsp:getProperty property="edgeC" name="smallTriangle" />
	<br> 这三个边能构成一个三角形吗?<jsp:getProperty property="judge"
		name="smallTriangle" />
	<br> 面积是:<jsp:getProperty property="area" name="smallTriangle" />
</body>
</html>

4)运行结果:

 

运行一个不是 三角形的

到此结束了 ...................................................................................

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值