欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《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+"有误,不能构成圆");

       }

}

%>

结果截图:

《JSP程序设计》第三章作业

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));

   }

%>

结果截图:

《JSP程序设计》第三章作业

《JSP程序设计》第三章作业