JSP第三章实验.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateJSP第三章实验南京信息工程大学计算机科学与技术系实验教材编写格式南京信息工程大学实验(实习)报告实验名称 3.2attribute、variable指令 实验日期 2017年4月10号 得分 指导教师 方忠进 系 计算机系 专业 软件工程 年级 三 班次 一 姓名 于金艳 学号 20142344039 一实验目的本实验的目的是让学生灵活掌握在Tag标记中使用attribute指令和variable指令。二实验内容与要求编写一个Tag文件GetArea.tag,负责计算三角形或梯形的面积,并将计算结果返回给调用该Tag文件的JSP页面,编写一个JSP页面inputAndShow.jsp,该页面负责向Tag文件提交三角形三边的长度或梯形的上底、下底和高,并负责显示Tag文件返回的相应面积。1) inputAndShow.jsp的具体要求inputAndShow.jsp提供一个表单。用户可以在表单中分别输入三个数值,并选择这三个数值代表三角形三遍的长度或梯形的上底、下底和高,然后提交给当前页面。inputAndShow.jsp通过Tag标记调用GetArea.tag文件,并向该Tag文件GetArea.tag传递三角形三边的长度或梯形的上底、下底和高。inputAndShow.jsp负责显示Tag文件GetArea.tag返回的面积以及相关信息。2) GetArea.tag的具体要求要求Tag文件GetArea.tag使用attribute指令的到JSP页面传递过来的三角形三表的长度或梯形的上底、下底和高,使用variable指令返回相应的面积以及字符串信息:“三角形的面积”或“梯形的面积”。三实验代码与结果1.程序代码一:inputAndShow.jsp<% page language="java" import="java.util.*" pageEncoding="UTF-8"%><%taglib tagdir="/WEB-INF/tags" prefix="computer" %><%String path = request.getContextPath();String basePath = request.getScheme()+":/"+request.getServerName()+":"+request.getServerPort()+path+"/"%><!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN"><html>输入的数值a,b,c(代表三角形的三边或梯形的上底、下底和高): <head> <base href="<%=basePath%>"> <title>My JSP 'inputAndShow.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="cyan"> <FORM action="" method=get name=form> <table> <tr><td>输入数值a:</td> <td><INPUT type="text" name="a"></td> </tr> <tr><td>输入数值b:</td> <td><INPUT type="text" name="b"></td> </tr> <tr><td>输入数值c:</td> <td><INPUT type="text" name="c"></td> </tr> </table> <INPUT type="radio" name="R" value="triangle">代表三角形 <INPUT type="radio" name="R" value="lader">代表梯形 <br><INPUT TYPE="submit" value="提交" name=submit> </FORM> <% String a=request.getParameter("a"); String b=request.getParameter("b"); String c=request.getParameter("c"); String cd=request.getParameter("R"); if(a=null|b=null|c=null) a="0" b="0" c="0" cd="0" if(a.length()>0 && b.length()>0 && c.length()>0) %> <computer:GetArea numberA="<%=a%>" numberB="<%=b%>" numberC="<%=c%>" condition="<%=cd%>" /> <br> <%= message%> <br> <%= area%> <% %> </body></html>二:GetArea.tag<%tag pageEncoding="GB2312" %><% attribute name="numberA" required="true" %><% attribute name="numberB" required="true" %><% attribute name="numberC" required="true" %><% attribute name="condition" required="true" %><% variable name-given="area" variable-class="java.lang.Double" scope="AT_END" %><% variable name-given="message" scope="AT_END" %><%! public double getTriangleArea(double a,double b,double c) if(a+b>c&&a+c>b&&c+b>a) double p=(a+b+c)/2.0; double area=Math.sqrt(p*(p-a)*(p-b)*(p-c); return area;else return -1;public double getLaderArea(double above,double bottom,double h) double area=(above+bottom)*h/2.0; return area;%><% try double a=Double.parseDouble(numberA); double b=Double.parseDouble(numberB); double c=Double.parseDouble(numberC); double result=0; if(condition.equals("triangle") result=getTriangleArea(a,b,c); jspContext.setAttribute("area",new Double(result); jspContext.setAttribute("message","三角形的面积"); else if(condition.equals("lader") result=getTriangleArea(a,b,c); jspContext.setAttribute("area",new Double(result); jspContext.setAttribute("message","梯形的面积"); catch(Exception e) jspContext.setAttribute("area", new Double(-1.0); jspContext.setAttribute("message",""+e.toString();%> 2.程序截图-