1. 编写一个JSP页面inputNumber.jsp,该页面提供一个表单,用户可以输入两个数字和四则运算符号。用户提交表单以后, inputNumber.jsp将计算工作交Tag文件MathComputer.tag去完成。
具体要求:
A. inputNumber.jsp要求提供的表单,有两个text文本框, 输入数字;一个select下拉列表有加、减、乘和除四个选项。提交时将数字和运算符号传递给Tag文件MathComputer.tag;
B. Tag文件MathComputer.tag接受上述传递来的数字和运算符号,并将计算结果返回给inputNumber.jsp,由inputNumber.jsp显示结果。
inputNumber.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%>
<HTML>
<BODY bgcolor=yellow>
<Font size=5>
<FORM action="" method=post name=form>
输入运算数、选择运算符号:<br>
<Input type=text name="numberOne" size=6>
<Select name="operator" >
<Option value="+">+
<Option value="-">-
<Option value="*">*
<Option value="/">/
</Select>
<Input type=text name="numberTwo" size=6>
<BR> <INPUT TYPE="submit" value="提交你的选择" name="submit">
</FORM>
<% String Parameter("numberOne");
String Parameter("numberTwo");
String Parameter("operator");
if(a==null||b==null)
{
a="";
b="";
}
if(a.length()>0&&b.length()>0)
{
%> <computer:Computer numberA="<%=a%>"
numberB="<%=b%>" operator="<%=operator%>"/>
计算结果:<%=a%><%=operator%><%=b%>=<%=result%>
<% }
%>
</Font>
</BODY>
</HTML>
Computer.Tag
<%@ tag pageEncoding="gb2312"%>
<%@ attribute name="numberA" required="true" %>
<%@ attribute name="numberB" required="true" %>
<%@ attribute name="operator" required="true" %>
<%@ variable name-given="result" scope="AT_END" %>
<% try
{ double a=Double.parseDouble(numberA);
double b=Double.parseDouble(numberB);
double r=0;
if(operator.equals("+"))
{ r=a+b;
}
else if(operator.equals("-"))
{ r=a-b;
}
else if(operator.equals("*"))
{ r=a*b;
}
else if(operator.equals("/"))
{ r=a/b;
}
jspContext.setAttribute("result",String.valueOf(r));
}
catch(Exception e)
{
jspContext.setAttribute("result","发生异常:"+e);
}
%>
2. 编写两个JSP页面input.jsp和result.jsp, input.jsp提供一个表单,可以输入一个数字给result.jsp。 result.jsp页面根据输入的数字,使用response对象做出动态响应。
具体要求:
A. input.jsp要求提供的表单,有一个text文本框, 输入数字。提交以后调用result.jsp;
B. result.jsp接受传递来的数字,并将根据数字做出响应。
如果数字小于0, 将contentType属性设置为text/plain,同时输出数字的平
方;
如果数字大于等于0并且小于40, 将contentType属性设置为application/msword,同时输出数字的正弦值;
如果数字大于等于40,使用response对象将状态行的状态代码设置为404;
如果提交的为非数字,使用response对象重定向到input.jsp页面 。
input.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=yellow>
<Font size=2>
<FORM action="result.jsp" method=post name=form>
输入数字: <Input type=text name="number" size=6>
<INPUT TYPE="submit" value="提交" name="submit">
</FORM>
</Font>
</BODY>
</HTML>
result.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan><Font size=3>
<% String Parameter("number");
try
{ double number=Double.parseDouble(str);
if(number<0)
{
response.setContentType("text/plain;charset=GB2312");
out.println(number+"的平方:"+(number*number));
}
else if(number>=0&&number<40)
{
response.setContentType("application/msword;charset=GB2312");
out.println(number+"正弦值:"+(sin(number)));
}
else
{ response.setStatus(404);
}
}
catch(Exception e)
{
response.sendRedirect("input.jsp");
}
%>
</FONT>
</BODY>
</HTML>
html表单只能输入数字3. 编写五个JSP页面inputGuess.jsp、result.jsp、small.jsp、large.jsp和success.jsp。
具体要求:
A. inputGuess.jsp随机生成一个1到100之间的整数,并将该数存入用户的session对象中。 inputGuess.jsp提供的表单,有一个text文本框, 输入用户的猜测数字,并提交以后调用result.jsp;
B. result.jsp负责判断inputGuess.jsp提交的数字是否和session对象中的答案相同。如果相同将重定向到success.jsp页面;如果不相同将重定向到small.jsp 或large.jsp页面。
C. small.jsp 和large.jsp页面都提供表单,用户可以继续输入猜测数字,并提交给result.jsp页面;
D. success.jsp负责显示成功的信息,并输出session对象中的答案。
4. 编写一个猜26个英文小写字母的Web页面。
lianxi6.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY >
<%
session.setAttribute("message","请您猜字母");
char a[]=new char[26];
int m=0;
for(char c='a';c<='z';c++)
{ a[m]=c;
m++;
}
int randomIndex=(int)(Math.random()*a.length);
char ch=a[randomIndex]; //获取一个英文字母
session.setAttribute("savedLetter",new Character(ch));
session.setAttribute("count",new Integer(0));
%>
访问或刷新该页面可以随机得到一个英文字母.
<BR>单击超链接去猜出这个字母:<A href="guess.jsp">去猜字母</A>
</BODY>
</HTML>
guess.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="guess"%>
<HTML><BODY bgcolor=cyan>
<% String s
Parameter("clientGuessLetter");
if(str==null)
{ str="*";
}
if(str.length()==0)
{ str="*";
}
%>
<guess:GuessLetter guessLetter="<%=str%>" />
当前猜测结果:<%=message%>
<% if(message.startsWith("您猜对了"))
{
%> <br><A HREF="lianxi6.jsp">重新获得一个字母</A>
<% }
else
{
%> <BR>输入您的猜测:
<FORM action="" method="post" name=form>
<INPUT type="text" name="clientGuessLetter" >
<INPUT TYPE="submit" value="送出" name="submit">
</FORM>
<% }
%>
</FONT>
</BODY>
</HTML>
GuessLetter.jsp:
<%@ tag pageEncoding="GB2312" %>
<%@ attribute name="guessLetter" required="true" %>
<%@ variable name-given="message" scope="AT_END" %>
<% String mess="";
Character ch=(Attribute("savedLetter");
char realLetter=ch.charValue();
char c=(im()).charAt(0);
if(c<='z'&&c>='a')
{
if(realLetter==c)
{
int n=((Attribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="您猜对了,这是第"+n+"次猜测";
}
else if(realLetter<c)
{
int n=((Attribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="您猜大了,这是第"+n+"次猜测";
}
else if(realLetter>c)
{
int n=((Attribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="您猜小了,这是第"+n+"次猜测";
}
}
else
{ mess="请输入a至z之间的英文字母。";
}
jspContext.setAttribute("message",mess);
%>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论