五、实验结果分析
1、tag文件中可以有html标记符、特殊的指令标记、成员变了和方法、java程序片和java表达式。
2、jsp页面使用tag标记动态执行一个tag文件。
3、当jsp页面调用一个tag文件时可能希望动态地向该tag文件传递信息,那么就可以使用带有标记体的tag标记来执行一个tag文件。
实验2 使用attribute指令
一、实验目的
本实验的目的是让学生灵活掌握在Tag标记中使用attribute指令。 二、实验要求
编写一个Tag文件ShowCalendar.tag,该Tag文件负责显示日历。编写一个JSP页面giveYearMonth.jsp,该JSP页面使用Tag标记调用ShowCalendar.tag文件,并且向ShowCalendar.tag文件传递年份和月份。 三、实验内容
1)giveYearMonth.jsp通过tag标记调用ShowCalendar.tag文件,并且向ShowCalendar.tag文件传递年份和月份。
2)ShowCalendar.tag文件根据jsp页面传递过来的年份和月份显示日历。该文件能对jsp页面传递过来的数据进行判断,比如,如果jsp页面传递过来的数据不是数值型数据,tag文件负责显示错误信息。 四、实验结果
实验所用代码如下: 实验2
giveYearMonth.jsp
<%@ page contentType=\<%@ taglib tagdir=\
调用Tag文件来显示日历.
ShowCalendar.tag
<%@ tag pageEncoding=\<%@ tag import=\
<%@ attribute name=\<%@ attribute name=\<%
int y=1999,m=1;
String [] day=new String[42]; try {
y=Integer.parseInt(year); m=Integer.parseInt(month);
Calendar rili=Calendar.getInstance();
rili.set(y,m-1,1);//将日历翻到year年month月1日,注意0表示一月??11表示十二月
int 星期几=rili.get(Calendar.DAY_OF_WEEK)-1; int dayAmount=0;
if(m==1||m==5||m==7||m==8||m==10||m==12) dayAmount=31;
if(m==4||m==6||m==9||m==11) dayAmount=30; if(m==2)
if(((y%4==0)&&(y0!=0))||(y@0==0)) dayAmount=29; else
dayAmount=28;
for(int i=0;i<星期几;i++) day[i]=\
for(int i=星期几,n=1;i<星期几+dayAmount;i++) {
day[i]=String.valueOf(n); n++; }
for(int i=星期几+dayAmount;i<42;i++) day[i]=\ }
catch(Exception exp) {
out.print(\年份或月份不合理\ } %>
<%=year %>年<%=month %>月的日历:
<% for(int n=0;n %> <% for(int i=n;i<7+n;i++){ %> <%=day[i] %> <% } %> <% } %> giveYearMonth.jsp页面 五、实验结果分析 1、一个tag文件中通过使用attribute指令,使得jsp页面在调用tag文件时,可以 向该tag文件中的对象传递一个引用。 tag文件中使用attribute指令: <%@ attribute name=\对象名字\对象的类型\ 实验3 使用variable指令 一、实验目的 本实验的目的是让学生灵活掌握在Tag标记中使用variable指令。 二、实验要求 编写一个Tag文件GetWord.tag,负责分解出字符串中的全部单词,并将分解出的全部单词返还给调用该Tag文件的JSP页面。编写一个JSP页面giveSoring.jsp,该页面负责向Tag文件传递一个由英文单词构成的字符串,并负责显示Tag文件返回的全部单词。 三、实验内容 1)giveSoring.jsp通过tag标记调用GetWord.tag,并传递一个由英文单词构成的字符串,显示tag文件返回的全部单词。 2)GetWord.tag使用attibute指令得到jsp页面传递过来的字符串,并用vatiable指令返回全部的单词。 四、实验结果 实验所用代码如下: giveString.jsp <%@ page contentType=\<%@ taglib tagdir=\ <% String s=\ %>
字符串:<%=s%>
中的全部单词: <%
for(int i=0;i< wordList.size();i++) {
out.print(\ } %>
GetWord.tag
<%@ tag import=\
<%@ attribute name=\
<%@ variable name-given=\variable-class=\scope=\
<%
ArrayList jspContext.setAttribute(\%> giveSoring.jsp页面 五、实验结果分析 1、Tag文件可以使用variable指令把一个对象返回给调用它的jsp页面 Tag文件使用variable指令给出返回的对象的名字、类型和有效范围: <%@ variable name-given=“对象名字” variable-class=“对象的类型” scope=“有效范围”%> 第4章 JSP内置对象 实验1 request对象 一、实验目的 本实验的目的是让学生掌握怎样在JSP中使用内置对象request。 二、实验要求 通过JSP页面和Tag文件实现数字的四则运算,要求编写两个JSP页面inputNumber.jsp和receiveNumber.jsp及一个Tag文件Computer.tag。receiveNumber.jsp使用内置对象接受inputNumber.jsp提交的数据,然后将计数任务交给Tag文件Computer.tag去完成。 三、实验内容 1)inputNumber.jsp页面提供一个表单,用户可以通过表单输入两个数、选择四则运算符号,并将输入的两个数和所选择的运算符号提交给receiveNumber.jsp页面。 2)receiveNumber.jsp使用内置对象inputNumber.jsp页面提交的数据,然后将计算任务交给Tag文件Computer.tag去完成。 3)要求Computer.tag使用attribute指令得到receiveNumber.jsp页面传递过来的书和运算符号,使用variable指令将运算结果返回给receiveNumber.jsp页面。 四、实验结果 实验所用代码如下: inputNumber.jsp <%@ page contentType=\