Rss & SiteMap

课外天地 李树青 http://www.njcie.com

李树青 论坛 南京 财经 课外天地
共2 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:程序代码——基于JSP的猜数字游戏

1楼
admin 发表于:2007/5/11 6:11:10

用于生成随机数的CRandom.java文件为:

package mypro;

public class CRandom
{
private int initialNumber=0;
private int rand=0;

public CRandom()
{
}

public CRandom(int init)
{
  setInitialNumber(init);
}

public void setInitialNumber(int num)
{
  if(num<0)
   initialNumber=0;
  else
   initialNumber=num;
  generateRandom();
}

public void generateRandom()
{
  rand=(int)(Math.random()*initialNumber)+1;
}

public int getRandom()
{  
  return rand;
}
}

用于保存提示信息的CInfo.java文件为:

package mypro;

public class CInfo
{
private String info;

public void setInfo(String str)
{
  info=str;
}

public String getInfo()
{
  return info;
}
}

用于猜数字的主页exec.jsp文件为:

<%@page c%>
<html>
<head>
</head>
<body>
  <jsp:useBean id="cr" scope="session" class="mypro.CRandom"/>
  <jsp:useBean id="ci" scope="session" class="mypro.CInfo"/>
  <%
   if(session.isNew())
   {
    ci.setInfo("Hello!");
    cr.setInitialNumber(100);
    //out.print(cr.getRandom());
   }
  %>
  <jsp:getProperty name="ci" property="info"/><br>  
  <form method="POST" action="action.jsp">
   <p>猜数字:<input type="text" name="guessNumber" size="20"></p>
   <input type="submit" value="登录" name="B1">
  </form>
</body>
</html>

用于判断并且实现分发跳转的action.jsp文件为:

<%
String s1=request.getParameter("guessNumber");
int num1=Integer.parseInt(s1);

mypro.CRandom cr=(mypro.CRandom)session.getAttribute("cr");
int num2=cr.getRandom();

mypro.CInfo ci=(mypro.CInfo)session.getAttribute("ci");

if(num1==num2)
{
  out.print("OK!<p><a href='exec.jsp'>Please click this to continue...</a>");
  session.invalidate();
}
else if(num1<num2)
{
  ci.setInfo("lower");
  RequestDispatcher dispatcher = request.getRequestDispatcher("exec.jsp");
  dispatcher.forward(request, response);
}
else
{
  ci.setInfo("higher");
  RequestDispatcher dispatcher = request.getRequestDispatcher("exec.jsp");
  dispatcher.forward(request, response);
}
%>

[此贴子已经被作者于2010-12-12 08:16:59编辑过]
2楼
admin 发表于:2007/5/17 22:08:03

关于如何将设置Bean属性的操作只进行一次,除了前面的方法外,更为简单的做法是将setProperty标签嵌套到对应的useBean标签即可,如:

<%@page c%>
<html>
<head>
</head>
<body>
  <jsp:useBean id="cr" scope="session" class="mypro.CRandom">
   <jsp:setProperty name="cr" property="initialNumber" value="100"/>
  </jsp:useBean>
  <jsp:useBean id="ci" scope="session" class="mypro.CInfo">
   <jsp:setProperty name="ci" property="info" value="Hello!"/>
  </jsp:useBean>
  <jsp:getProperty name="ci" property="info"/><br>  
  <form method="POST" action="action.jsp">
   <p>猜数字:<input type="text" name="guessNumber" size="20"></p>
   <input type="submit" value="登录" name="B1">
  </form>
</body>
</html>
  

[此贴子已经被作者于2010-12-12 08:17:14编辑过]
共2 条记录, 每页显示 10 条, 页签: [1]

Copyright ©2002 - 2016 课外天地.Net
Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.