JSP作业三

本文介绍了如何使用JSP自定义标签(Tag文件)来计算矩形、圆形和三角形的面积。示例中展示了Rect.tag用于计算矩形面积,Circle.tag用于计算圆的面积,而GetArea.tag则用于计算三角形面积,通过variable指令返回结果给调用的JSP页面。在lianxi6.jsp、one.jsp和two.jsp页面中,分别调用了这些Tag文件,并展示了不同的精度设置来显示面积结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6.编写两个Tag文件Rect.tag和Circle.tag。Rect负责计算并显示矩形的面积,Circle负责计算并显示圆的面积。编写一个JSP页面lianxi6.jsp,该JSP页面使用Tag标记调用Rect.tag和Circle.tag.。

lianxi6.jsp:

<%@ page contentType = "text/html;charset=UTF-8" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="tsg" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<p>请输入矩形的长和宽:
<form action="" method="post" name=form>
<label>长:</label><input type="text" name="length" id="length">
<br>
<br>
<label>宽:</label><input type="text" name="width" id="width">
<br>
<Input type="submit"value="确定" name=submit1>
</form>
<tsg:Rect/>
<p>请输入圆的半径:
<form action="" method="post" name=form>
<label>半径:</label><input type="text" name="r1" id="r1">
<br><Input type="submit"value="确定" name=submit2>
</form>
<tsg:Circle/>
</body>
</html>

Rect.tag:

<%@ tag pageEncoding="utf-8" %>
<%  String length =  request.getParameter("length");
	String width =  request.getParameter("width");
	if(l!=null&&h!=null){
	int l=Integer.parseInt(length);
	int w=Integer.parseInt(width);
	int area=0;
	area=m*n;
	out.println("矩形的面积:"+area);
	%>
	<%
		}
	%>

Circle.tag:

<%@ tag pageEncoding="utf-8" %>
<%  String str =  request.getParameter("r1");
if(str!=null){
Double r=Double.parseDouble(str);
Double area;
area=3.14*r*r;
out.println("圆的面积:"+area);
%>
<%
}
%>

结果:

7.编写一个Tag文件,GetArea.tag负责求三角形面积,并使用variable指令返回三角形的面积给调用该Tag文件的JSP页面。JSP页面负责显示Tag文件返回的三角形面积。JSP在调用Tag文件时,使用attribute指令将三角形三边的长度传递给Tag文件。one.js和two.jsp都是用Tag标记调用GetArea.tag。one返回的三角形的面积保留最多三位小数,two将返回的三角形面积保留最多六位小数。

one.jsp:

<%@ page contentType = "text/html;charset=UTF-8" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="tra" %>
<%@page import="java.text.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<p>请输入三角形三边长:
<form action="" method="post" name=form>
<label>第一条边:</label><input type="text" name="length1" id="length1">
<br>
<br>
<label>第二条边:</label><input type="text" name="length2" id="length2">
<br>
<br>
<label>第三条边:</label><input type="text" name="length3" id="length3">
<br>
<br>
<input type="submit"value="确定" name=submit1>
</form>
<%String a=request.getParameter("length1");//取值并转化为字符串
 String b=request.getParameter("length2");
 String c=request.getParameter("length3");
 %>
<tra:GetArea b="<%=a %>" a="<%=b %>" c="<%=c %>"/>
 <% NumberFormat f=NumberFormat.getInstance();
 	f.setMaximumFractionDigits(3);//设置保留三位小数
 if(area1!=null)
	 {double d=area1.doubleValue();
 	String str=f.format(d);
 	out.println(str);}
 %>
</body>
</html>

two.jsp:

<%@ taglib tagdir="/WEB-INF/tags" prefix="tra" %>
<%@page import="java.text.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<p>请输入三角形三边长:
<%@ page contentType = "text/html;charset=UTF-8" %>
<form action="" method="post" name=form>
<label>第一条边:</label><input type="text" name="length1" id="length1">
<br>
<br>
<label>第二条边:</label><input type="text" name="length2" id="length2">
<br>
<br>
<label>第三条边:</label><input type="text" name="length3" id="length3">
<br>
<br>
<input type="submit"value="确定" name=submit1>
</form>
<%String a=request.getParameter("length1");
 String b=request.getParameter("length2");
 String c=request.getParameter("length3");
 %>
<tra:GetArea b="<%=a %>" a="<%=b %>" c="<%=c %>"/>
 <% NumberFormat f=NumberFormat.getInstance();
 	f.setMaximumFractionDigits(6); //将参数改为6即可保留6位小数
 if(area1!=null)
	 {double d=area1.doubleValue();
 	String str=f.format(d);
 	out.println(str);}
 %>
</body>
</html>

GetArea.tag:

<%@tag import="java.util.*" %>
<%@attribute name="a" required="true" %>
<%@attribute name="b" required="true" %>
<%@attribute name="c" required="true" %>
<%@variable name-given="area1" variable-class="java.lang.Double" scope="AT_END"%>
<%	
		if(a!=null&&b!=null&&c!=null){
		double l1=Double.parseDouble(a);
		double l2=Double.parseDouble(b);
		double l3=Double.parseDouble(c);
		if(l1+l2>l3&&l2+l3>l1&&l1+l3>l2){
			double p=(l1+l2+l3)/2.0;
			double area=Math.sqrt(p*(p-l1)*(p-l2)*(p-l3));
			if(a!=null&&b!=null&&c!=null){
			jspContext.setAttribute("area1",new Double(area));
			}
		}
	}
%>	

结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值