jsp.docx

上传人:b****3 文档编号:2946427 上传时间:2022-11-16 格式:DOCX 页数:17 大小:175.82KB
下载 相关 举报
jsp.docx_第1页
第1页 / 共17页
jsp.docx_第2页
第2页 / 共17页
jsp.docx_第3页
第3页 / 共17页
jsp.docx_第4页
第4页 / 共17页
jsp.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

jsp.docx

《jsp.docx》由会员分享,可在线阅读,更多相关《jsp.docx(17页珍藏版)》请在冰豆网上搜索。

jsp.docx

jsp

实验三Tag文件与Tag标记

 

一、实验目的和要求

1)掌握在Tag标记中使用标记体;

2)掌握在Tag标记中使用attribute指令和variable指令。

二、实验内容

1.编写一个JSP页面:

putImage.jsp和一个Tag文件Image.tag。

JSP页面通过调用Tag文件来显示若干幅图像,通过使用标记体将HTML图像标记传递给被调用的Tag文件。

(1)putImage.jsp的具体要求

要求putImage.jsp页面使用带标记体Tag标记调用Tag文件来显示一幅图像,即标记体是“显示图像的HTML标记”,如下所示:

Image>

Image>

(2)Image.tag的具体要求

Image.tag使用

doBody/>处理标记体,并将图像显示在表格的单元中,要求表格每行有三个单元,这三个单元重复显示一幅图像。

解答:

(1)源代码:

putImage:

<%@pagecontentType="text/html;charset=GB2312"%>

<%@taglibtagdir="/WEB-INF/tags"prefix="pic"%>

表格每行重复显示一幅图像

Image>

Image>

Image>

Image>

Image>

Image>

Image:

doBody/>

doBody/>

doBody/>

(2)运行结果:

(alt+printscreen)

(3)运行结果分析:

2.编写一个JSP页面,该JSP页面只负责将学生的姓名和成绩分别存放到链表中,然后将链表传递给Sort.tag,Sort.tag负责按从低到高的顺序显示学生的成绩。

解答:

(1)源代码:

Example3_4.jsp:

<%@pagecontentType="text/html;charset=GB2312"%>

<%@pageimport="java.util.*"%>

<%@taglibtagdir="/WEB-INF/tags"prefix="show"%>

<%LinkedListlistName=newLinkedList();

LinkedListlistSroce=newLinkedList();

listName.add("董文来");

listSroce.add(newDouble(95));

listName.add("张三");

listSroce.add(newDouble(80));

listName.add("李四");

listSroce.add(newDouble(55));

listName.add("王五");

listSroce.add(newDouble(88));

listName.add("赵六");

listSroce.add(newDouble(50));

%>

成绩单

Sorttitle="姓名"item="高等数学"

listName="<%=listName%>"listSroce="<%=listSroce%>"/>

Sort.jsp:

<%@attributename="listName"required="true"type="java.util.LinkedList"%>

<%@attributename="listSroce"required="true"type="java.util.LinkedList"%>

<%@attributename="title"required="true"%>

<%@attributename="item"required="true"%>

<%for(inti=0;i

for(intj=i+1;j

doublea=((Double)listSroce.get(i)).doubleValue();

doubleb=((Double)listSroce.get(j)).doubleValue();

if(b

Stringtemp=(String)listName.get(i);

Doubler=(Double)listSroce.get(i);

listName.set(i,(String)listName.get(j));

listName.set(j,temp);

listSroce.set(i,(Double)listSroce.get(j));

listSroce.set(j,r);

}

}

}

out.print("");

out.print("");

out.print(""+title+"");

out.print(""+item+"");

out.print("");

for(intk=0;k

out.print("");

doublescore=(Double)listSroce.get(k);

Stringname=(String)listName.get(k);

if(score<60){

out.print(""+name+"");

out.print(""+score+"");

}

else{

out.print(""+name+"");

out.print(""+score+"");

}

out.print("");

}

out.print("");

%>

(2)运行结果:

(alt+printscreen)

(3)运行结果分析:

3.编写Tag文件GiveRoot.tag负责求出一元二次方程的根。

JSP页面在调用Tag文件时,使用attribute指令将方程的根传递给Tag文件;Tag文件GiveRoot.tag使用variable指令返回一元二次方程的根给调用该Tag文件的JSP页面。

userOne.jsp和userTwo.jsp都使用Tag标记调用GiveRoot.tag,返回方程的根。

useOne.jsp将根保留3位小数,并计算方程两个根之和;useTwo.jsp将根保留5位小数,并计算方程两个根之积。

解答:

(1)源代码:

GiveRoot;

<%@tagimport="java.util.*"pageEncoding="gb2312"%>

<%@attributename="coefficientA"required="true"%>

<%@attributename="coefficientB"required="true"%>

<%@attributename="coefficientC"required="true"%>

<%@variablename-given="rootOne"variable-class="java.lang.Double"scope="AT_END"%>

<%@variablename-given="rootTwo"variable-class="java.lang.Double"scope="AT_END"%>

<%doubledisk,root1,root2;

doublea=Double.parseDouble(coefficientA);

doubleb=Double.parseDouble(coefficientB);

doublec=Double.parseDouble(coefficientC);

disk=b*b-4*a*c;

if((disk>0)&&a!

=0){

root1=(-b+Math.sqrt(disk))/(2*a);

root2=(-b-Math.sqrt(disk))/(2*a);

jspContext.setAttribute("rootOne",newDouble(root1));

jspContext.setAttribute("rootTwo",newDouble(root2));

}

else{

jspContext.setAttribute("rootOne",null);

jspContext.setAttribute("rootTwo",null);

}

%>

userOne:

<%@pagecontentType="text/html;charset=GB2312"%>

<%@pageimport="java.text.*"%>

<%@taglibtagdir="/WEB-INF/tags"prefix="computer"%>

GiveRootcoefficientA="3"coefficientB="6"coefficientC="-2"/>

方程的根保留3位小数点,并计算两根的和:

<%NumberFormatf=NumberFormat.getInstance();

f.setMaximumFractionDigits(3);

if(rootOne!

=null&&rootTwo!

=null){

doubler1=rootOne.doubleValue();

doubler2=rootTwo.doubleValue();

Strings1=f.format(r1);

Strings2=f.format(r2);

out.println("
根1:

"+s1);

out.println("
根2:

"+s2);

doublesum=r1+r2;

out.print("
根1与根2之和:

"+sum);

}

else{

out.print("
方程没有实根");

}

%>

userTwo;

<%@pagecontentType="text/html;charset=GB2312"%>

<%@pageimport="java.text.*"%>

<%@taglibtagdir="/WEB-INF/tags"prefix="computer"%>

G

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1