《JSP程序设计》第三章作业
程序员文章站
2022-03-09 08:05:54
...
课本习题3
6.编写两个Tag文件Rect.tag和Circle.tag。Rect.tag负责计算并显示矩形的面积,Circle.tag负责计算并显示圆的面积。编写一个JSP页面lianxi6.jsp,该JSP页面使用Tag标记调用Rect.tag和Circle.tag。调用Rect.tag时,想其传递矩形的两个边的长度;调用Circle.tag时,向其传递圆的半径。
lianxi6.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%>
<html>
<body bgcolor=AntiqueWhite>
<font size=4>
<p>Rect.tag文件调用效果:
<computer:Rect l="4" w="3"/>
</p>
<p>Circle.tag文件调用效果:
<computer:Circle r="3"/>
</p>
</font></body></html>
Rect.tag
<%@ tag pageEncoding="gb2312"%>
<%@ attribute name="l" required="true" %>
<%@ attribute name="w" required="true" %>
<% out.println("<br/>两条边的值分别为:"+l+","+w);
double a=Double.parseDouble(l);
double b=Double.parseDouble(w);
out.println(getArea(a,b));
%>
<%! public String getArea(double a,double b){
if(a>0&&b>0){
double area=a*b;
return("<br/>矩形面积为:"+area);
}
else{
return("<br/>"+a+","+b+"无法构成矩形");
}
}
%>
Circle.tag
<%@ tag pageEncoding="gb2312" %>
<%@ attribute name="r" required="true"%>
<% out.println("<br/>半径为:"+r);
double x=Double.parseDouble(r);
out.println(getArea(x));
%>
<%!
public String getArea(double x){
if(x>0){
double area=Math.PI*x*x;
return("<br/>圆的面积为:"+area);
}
else{
return("<br/>半径"+r+"有误,不能构成圆");
}
}
%>
结果截图:
7.编写一个Tag文件GetArea.tag负责求出三角形的面积,并使用variable指令返回三角形的面积给调用该Tag文件的JSP页面。JSP页面负责显示Tag文件返回的三角形面积。JSP在调用Tag文件时,使用attribute指令将三角形的三条边的长度传递给Tag文件。one.jsp和two.jsp都使用Tag标记调用GetArea.tag。one.jsp将返回将返回的三角形的面积保留最多3位小数,two.jsp将返回将返回的三角形的面积保留最多6位小数。
one.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.text.*" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer" %>
<html>
<body bgcolor=AntiqueWhite>
<computer:GetArea sideA="3" sideB="6" sideC="8" />
<p>面积保留3位小数点:</p>
<% NumberFormat n=NumberFormat.getInstance();
n.setMaximumFractionDigits(3);
double s=area.doubleValue();
String str=n.format(s);
out.println(str);
%>
</body></html>
two.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.text.*" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer" %>
<html>
<body bgcolor=AntiqueWhite>
<computer:GetArea sideA="3" sideB="6" sideC="8" />
<p>面积保留6位小数点:</p>
<% NumberFormat n=NumberFormat.getInstance();
n.setMaximumFractionDigits(6);
double s=area.doubleValue();
String str=n.format(s);
out.println(str);
%>
</body></html>
GetArea.tag
<%@ tag pageEncoding="gb2312" %>
<%@ attribute name="sideA" required="true" %>
<%@ attribute name="sideB" required="true" %>
<%@ attribute name="sideC" required="true" %>
<%@ variable name-given="area" variable-class="java.lang.Double" scope="AT_END" %>
<% double a=Double.parseDouble(sideA);
double b=Double.parseDouble(sideB);
double c=Double.parseDouble(sideC);
if(a+b>c && b+c>a && a+c>b){
double p=(a+b+c)/2.0;
double result=Math.sqrt(p*(p-a)*(p-b)*(p-c));
out.print("三条边分别为:"+a+", "+b+", "+c);
jspContext.setAttribute("area",new Double(result));
}
else{
jspContext.setAttribute("所给的三条边无法构成三角形",new Double(-1.0));
}
%>
结果截图:
上一篇: Access 使用总结一篇