软件开发基础(Java)作业作业名称第12次作业Java知识JSP实验学号201330320330姓名郑文龙学院数学与信息学院专业计算机科学与技术评分备注:评分标准作业部分所占比例1、课程内容阅读45%2、课程程序编写45%3、课外程序10%(以下空白)一、课程内容阅读1、对课程补充材料及课本内容阅读后的总结答:我们知道JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。JSP中,我们需要注意的是jsp指令、jsp属性、jsp内置对象。在规范的JSP2.0中提供了三种指令:page、include和tablib,这些指令中又包含了许多的jsp属性,当然,在jsp这个章节内容中,我学到的最多的是page指令,对于page中对应的相关指令我不一一列举了,接着讲的是jsp内置对象。由于jsp是嵌入式的语言,不能显式地把一些必要的参数传递进来,比如Request和Response对象等,所以在jsp规范中提供了几个内置的对象来实现此功能。常用的内置对象:application、session、request、response、out、page、exception、pageContext。二、课程程序编写题目:编写一个程序,功能如下:1.编写login.jsp,登录时只输入一个昵称。但要检查昵称是否已经被其他用户使用。2.编写game.jsp,每次游戏程序随机产生一个0-9之间的整数,要求玩家输入自己猜的数字,并对用户输入数字进行检查,进行如下提示:(1)如果用户猜对了,则提示:恭喜你,猜对了。结束本次游戏。(2)如果用户猜错了,则提示:你猜的数字太(大或小)了。要求用户继续猜。如果连续3次没有猜对,则提示:游戏失败。一次游戏结束时,将用户本次猜数字情况记入“排行榜”。然后询问用户是否继续新的游戏,果用户选择继续,则开始新一次游戏。3.排行榜页面,显示所有参加游戏的用户的游戏情况。昵称游戏次数成功次数ABC108XYX117.......4.必须登录后才能进入游戏页面,而进入登录页面和排行榜页面,无须登录。5.提示,排行榜数据结构应该放在application中,用户登录状态放在session中。程序代码:登录页面login.jsp%@pagelanguage=javaimport=java.util.*pageEncoding=UTF-8%%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+://+request.getServerName()+:+request.getServerPort()+path+/;Stringexit=request.getParameter(exit);if(exit!=null){session.setAttribute(username,null);//退出登录}if(session.getAttribute(username)!=null){response.sendRedirect(game.jsp);}%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadbasehref=%=basePath%title登录页面/titletitleMyJSP'login.jsp'startingpage/titlemetahttp-equiv=pragmacontent=no-cachemetahttp-equiv=cache-controlcontent=no-cachemetahttp-equiv=expirescontent=0metahttp-equiv=keywordscontent=keyword1,keyword2,keyword3metahttp-equiv=descriptioncontent=Thisismypage!--linkrel=stylesheettype=text/csshref=styles.css--/headscriptfunctioncheck(){vara=document.getElementById(n).value;if(a==){alert(亲,您还没输入,请重新输入);returnfalse;}returntrue;};/scriptbodycenterbrbrtableframe=boxwidth=40%height=45%trthbgcolor=green fontcolor=red猜数字游戏/font /th/trtrtd请输入登录昵称:brcenterformaction=logincheck.jspmethod=postinputtype=textname=usernameid=n/inputtype=submitvalue=登陆onclick=returncheck()//formbrahref=rank.jsp排行/a/center/td/tr/table/center/body/html登陆检查logincheck.jsp%@pagelanguage=javaimport=java.util.*pageEncoding=UTF-8%%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+://+request.getServerName()+:+request.getServerPort()+path+/;%%request.setCharacterEncoding(UTF-8);//设置编码Stringusername=request.getParameter(username);//获取用户名intflag=0;//判断用户是否登录过//application.removeAttribute(LOGINED_USER);ListStringloginedUsers=newArrayListString();if(application.getAttribute(LOGINED_USER)!=null){loginedUsers=(ArrayListString)application.getAttribute(LOGINED_USER);for(StringloginedUser:loginedUsers)//存在过,{if(username.equals(loginedUser)){flag=1;out.print(scriptalert('此昵称已有人使用过!请重新输入');location.href='login.jsp';/script);//response.sendRedirect(login.jsp);}}if(flag==0){ListStringnewUser=newArrayListString();loginedUsers.add(username);newUser.add(username);session.setAttribute(LOGINED_USER,newUser);session.setAttribute(username,username);//存储用户名,方便检测application.setAttribute(LOGINED_USER,loginedUsers);response.sendRedirect(game.jsp);}}if(application.getAttribute(LOGINED_USER)==null){ListStringnewUser=newArrayListString();loginedUsers.add(username);newUser.add(username);session.setAttribute(LOGINED_USER,newUser);session.setAttribute(username,username);//存储用户名,方便检测application.setAttribute(LOGINED_USER,loginedUsers);response.sendRedirect(game.jsp);}%游戏jsp中game.jsp%@pagelanguage=javaimport=java.util.*pageEncoding=UTF-8%%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+://+request.getServerName()+:+request.getServerPort()+path+/;StringnickName=(String)session.getAttribute(username);if(session.getAttribute(username)==null){response.sendRedirect(login.jsp);}Objectgtime=application.getAttribute(nickName+gtime);if(gtime==null){//第一次application.setAttribute(nickName+gtime,1+);}else{intgt=Integer.parseInt((String)gtime);gt=gt+1;application.setAttribute(nickName+gtime,gt+);//增加次数}intnumber=(int)(Math.random()*10);session.setAttribute(save,number);%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadbasehref=%=basePath%title游戏页面/titlemetahttp-equiv=pragmacontent=no-cachemetahttp-equiv=cache-controlcontent=no-cachemetahttp-equiv=expirescontent=0metahttp-equiv=keywordscontent=keyword1,keyword2,keyword3metahttp-equiv=descriptioncontent=Thisismypage!--linkrel=stylesheettype=text/csshref=styles.css--/headscript//varrandom=Math.floor(Math.random()*10);//Integerinteger=(Integer)session.getAttribute(save);varrandom=%=session.getAttribute(save)%;document.write(random);vartime=