习题4_3
编写两个JSP页面,使用一个页面输入一个字符串,另一个页面显示该字符串长度
inputString.jsp
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<p>input the Strings:
<form action="" method=post name=form>
<input type="text" name=str>
<input type="submit" value="output" name="submit">
</form>
<%
String s=request.getParameter("str");
if(s!=null){
session.setAttribute("str1",s);
response.sendRedirect("computer.jsp");
} %>
</body>
</html>
computer.jsp
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<% String str=(String)session.getAttribute("str1");
%>
<p> 字符串长度为:<%=str.length() %>
</body>
</html>
结果图
习题4_6
编写一个猜英文26个小字母的WEB游戏
4_6.jsp
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<% char letter=(char)(int)(Math.random()*(123-97)+97);
session.setAttribute("count",new Integer(0));
session.setAttribute("save",new Character(letter));
%>
<BR><A HREF="guess.jsp">去猜测这个字母</A>
</body>
</html>
guess.jsp
<html>
<body>
<% String str=request.getParameter("guessNumber");
if(str==null)
str="*";
if(str.length()==0)
str="*";
%>
<guessNumber:GuessTag number="<%=str %>"/>
当前猜测结果:<%= message %>
<%if(message.startsWith("你猜对了")){
%> <br><A HREF="4_6.jsp">重新获得随机字母</A>
<% }
else {
%><BR>输入你的猜测:
<form action="" method="post" name=form>
<input type="text" name="guessNumber">
<input type="submit" value="送出" name="submit">
</form>
<% }
%>
</body>
</html>
GuessTag.tag
<%@ attribute name="number" required="true"%>
<%@ variable name-given="message" scope="AT_END"%>
<% String mess="";
Character c=(Character)session.getAttribute("save");
Character realc=c.charValue();
Character guessNumber='A';
boolean boo=true;
try{ guessNumber=number.charAt(0);
}
catch(Exception exp){
boo=false;
}
if(boo){
if(guessNumber==realc){
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="你猜对了,这是第"+n+"次猜测";
}
else if(guessNumber>realc){
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="你猜大了,这是第"+n+"次猜测";
}
else if(guessNumber<realc){
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count",new Integer(n));
mess="你猜小了,这是第"+n+"次猜测";
}
else if(number.equals("你还没开始猜测")){
mess="你还没开始猜测";
}
jspContext.setAttribute("message",mess);
}
else{
jspContext.setAttribute("message","请输入你的猜测");
}
%>
结果图
!](https://img-blog.csdnimg.cn/20190406111432539.png)
产出一个随机字母时,需要注意Math.random的用法
比较字母时,可利用ASCII值直接比较