实验一JSP技术应用(第1次实验,2学时,设计性)一、实验目的和要求1掌握JSP的基本语法;2.掌握JSP页面的构成元素和执行过程;3.熟练掌握怎样在JSP页面中使用page指令和include指令;4.熟练掌握怎样在JSP页面中request内置对象;5.熟练掌握怎样在JSP页面中response对象动态响应用户的请求;6.熟练掌握怎样在JSP页面中session对象存储和用户有关的数据;7.进一步熟悉其它JSP内置对象的用法。二、实验内容实现一个猜数字小游戏:系统先随机分配给用户一个1到100之间的数,然后用户在页面输入自己的猜测,如果用户猜测不正确,则提示用户猜测的数字是大了还是小了;如果用户猜测正确,则游戏结束。要求:游戏中的不同功能分别在不同的JSP页面中实现,并在JSP页面中使用到session等内置对象。不能使用脚本或前端技术来实现。三、实验原理1.JSP页面的构成:HTML代码、脚本代码、指令、动作。2.JSP的内置对象共九个,其中四个是作用域对象:request、response、application、session3.Servlet类的定义及处理JSP页面请求并响应的一般过程如下:(1)设置请求编码格式(2)设置响应编码格式(3)获取请求信息(4)处理请求信息(5)响应处理结果(三种响应方式):直接响应(少用)、请求转发、重定向(更多用)4.EL表达式基本语法:$(表达式)注意:EL表达式仅能获取作用域对象中的数据。5.JSTL标签库使用基本步骤(以核心标签库为例):(1)导入jar包:(2)声明jstl标签库的引入(核心标签库):<%@taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core"%>(3)使用四、实验步骤1.打开Eclipse,File->New->DynamilWebProject,命名testl。2.将jstljar和standard.jar复制到WEB-INF的lib目录下。3.在WebContent目录下新建inputGuess.jsp、largejsp、small.jsp和success.jsp。1
1 实验一 JSP 技术应用 (第 1 次实验,2 学时,设计性) 一、实验目的和要求 1. 掌握 JSP 的基本语法; 2. 掌握 JSP 页面的构成元素和执行过程; 3. 熟练掌握怎样在 JSP 页面中使用 page 指令和 include 指令; 4. 熟练掌握怎样在 JSP 页面中 request 内置对象; 5. 熟练掌握怎样在 JSP 页面中 response 对象动态响应用户的请求; 6. 熟练掌握怎样在 JSP 页面中 session 对象存储和用户有关的数据; 7. 进一步熟悉其它 JSP 内置对象的用法。 二、实验内容 实现一个猜数字小游戏:系统先随机分配给用户一个 1 到 100 之间的数,然后用户在 页面输入自己的猜测,如果用户猜测不正确,则提示用户猜测的数字是大了还是小了;如 果用户猜测正确,则游戏结束。 要求:游戏中的不同功能分别在不同的 JSP 页面中实现,并在 JSP 页面中使用到 session 等内置对象。不能使用脚本或前端技术来实现。 三、实验原理 1. JSP 页面的构成:HTML 代码、脚本代码、指令、动作。 2. JSP 的内置对象共九个,其中四个是作用域对象:request、response、application、session 3. Servlet 类的定义及处理 JSP 页面请求并响应的一般过程如下: (1)设置请求编码格式 (2)设置响应编码格式 (3)获取请求信息 (4)处理请求信息 (5)响应处理结果(三种响应方式):直接响应(少用)、请求转发、重定向(更多用) 4. EL 表达式 基本语法:${表达式} 注意:EL 表达式仅能获取作用域对象中的数据。 5. JSTL 标签库 使用基本步骤(以核心标签库为例): (1)导入 jar 包; (2)声明 jstl 标签库的引入(核心标签库): <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> (3)使用 四、实验步骤 1. 打开 Eclipse,File->New->Dynamil Web Project,命名 test1。 2. 将 jstl.jar 和 standard.jar 复制到 WEB-INF 的 lib 目录下。 3. 在 WebContent 目录下新建 inputGuess.jsp、large.jsp、small.jsp 和 success.jsp
4.新建Servlet类:cn.edu.ycu.sxxy.testl.GuessServlet。5.测试运行。五、参考程序1.游戏开始界面inputGuess.jsp<%@ pagelanguage="java"contentType="text/htmL;charset=UTF-8"pageEncoding-"UTF-8"%><%@page import="java.util.*"%><%@taglib prefix-"c"uri-"http://java.sun.com/jsp/jstl/core"%><!DOCTYPE htmlPUBLIC"-//W3C//DTDHTML 4.e1 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="cContent-Type"content="text/html;charset=UTF-8">《title>猜数游戏</title><style type="text/css">.guessDtfont-size:24px;font-weight:bold;7</style></head><body><%int number=(int)(Math.random()*10o)+1;session.setAttribute("count",newInteger(o));//统计用户猜的次数session.setAttribute("save",newInteger(number));//系统随机生成的数字%><div align="center"<h1>猜数游戏</h1><divclass="quessD">系统随机生成了一个1到100之间的数,<br/><formaction="GuessServlet"method="post"请输入您的猜测:《<inputtype="text"name="num"> <input type="submit"value="送出"></form></div></div></body></html>1inputGuessjsplargejspsmalljspGuessServletjava消数游戏85http:/localhost:8080/test1/guess/inputGuessjspE猜数游戏系统随机生成了一个1到100之间的数,请输入您的猜测:张出2.GuessServletjava(验证用户猜的数正确?大了?还是小了?)String str=request.getParameter("num");if(str==null)(str="0";1
2 4. 新建 Servlet 类:cn.edu.ycu.sxxy.test1.GuessServlet。 5. 测试运行。 五、参考程序 1. 游戏开始界面 inputGuess.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>猜数游戏</title> <style type="text/css"> .guessD{ font-size: 24px; font-weight:bold; } </style> </head> <body> <% int number=(int)(Math.random()*100)+1; session.setAttribute("count", new Integer(0));//统计用户猜的次数 session.setAttribute("save", new Integer(number));//系统随机生成的数字 %> <div align="center"> <h1>猜数游戏</h1> <div class="guessD"> 系统随机生成了一个1到100之间的数,<br/> <form action="GuessServlet" method="post"> 请输入您的猜测:<input type="text" name="num">  <input type="submit" value="送出" > </form> </div> </div> </body> </html> 2. GuessServlet.java(验证用户猜的数正确?大了?还是小了?) String str=request.getParameter("num"); if(str==null){ str="0"; }
intguessNumber=Integer.parseInt(str);//用户猜的数字string save=(request.getSession()).getAttribute("save").tostring();intrealnumber=Integer.parseInt(save);//系统随机生成的数字String count =(request.getSession()).getAttribute("count").tostring();int n= Integer.parseInt(count);n=n+1request.getSession().setAttribute("count",new Integer(n));if(guessNumber==realnumber)1response.sendRedirect("success.jsp");2elseif(guessNumber>realnumber)tresponse.sendRedirect("large.jsp");7else if(guessNumber<realnumber)中response.sendRedirect("small.jsp");13.猜大了,再猜large.jsp<%@page language-"java"contentType-"text/htmL;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.o1 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content-"text/htmL;charset=UTF-8"><title>猜数游戏</title><style type="text/css">.guessD(font-size:24px;font-weight:bold;2</style></head><body><divalign="center"<h1>猜数游戏</h1><divclass-"quessD"><form action="GuessServLet"method-"post"name=form>猜大了,请再猜:<inputtype="text"name=“num"><inputtype-"submit"value-"提交"name-"submit"></form></div></div></body></html>-EinputGuessjsplargejipsmaljispDGuessServletjava消数静戏http:/localhost:B080/test1/guess/largejsp猜数游戏猜大了,请再猜:提4.猜小了,再猜smalljsp
3 int guessNumber = Integer.parseInt(str);//用户猜的数字 String save = (request.getSession()).getAttribute("save").toString(); int realnumber = Integer.parseInt(save);//系统随机生成的数字 String count = (request.getSession()).getAttribute("count").toString(); int n= Integer.parseInt(count); n=n+1; request.getSession().setAttribute("count", new Integer(n)); if(guessNumber==realnumber) { response.sendRedirect("success.jsp"); } else if(guessNumber>realnumber){ response.sendRedirect("large.jsp"); } else if(guessNumber<realnumber) { response.sendRedirect("small.jsp"); } 3. 猜大了,再猜 large.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>猜数游戏</title> <style type="text/css"> .guessD{ font-size: 24px; font-weight:bold; } </style> </head> <body> <div align="center"> <h1>猜数游戏</h1> <div class="guessD"> <form action="GuessServlet" method="post" name=form> 猜大了,请再猜:<input type="text" name="num"> <input type="submit" value="提交" name="submit"> </form> </div> </div> </body> </html> 4. 猜小了,再猜 small.jsp
<%@ page language-"java"contentType="text/htmL;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtm PUBLIC"-//W3C//DTDHTML4.o1Transitional//EN""http://www.w3.org/TR/html14/loose.dtd"<html><head><meta http-equiv="Content-Type"content="text/htmL;charset=UTF-8">《title>猜数游戏</title><styletype="text/css">.guessD(font-size: 24px;font-weight:bold;7</style></head><body><divalign="center"<h1>猜数游戏</h1><div class-"guessD"<formaction="GuessServlet"method-"post"name=form>猜小了,请再猜:<inputtype-"text"name-"num"><inputtype="submit"value-"提交"name-"submit"></form></div></div></body></html>largejspsmalljspGuessServlet java满故游戏#DinputGuessjsphttp:/localhost:8080/test1/guess/smalljsp猜数游戏猜小了,请再猜:提支5.猜对了success.jsp<%@ pagelanguage="java"contentType="text/htmL;charset=UTF-8"pageEncoding-"UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.o1 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>猜数游戏</title><style type="text/css">.guessD(font-size:24px;font-weight:bold;7</style></head><body><divalign="center"><h1>猜数游戏</h1><divclass="guessD">
4 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>猜数游戏</title> <style type="text/css"> .guessD{ font-size: 24px; font-weight:bold; } </style> </head> <body> <div align="center"> <h1>猜数游戏</h1> <div class="guessD"> <form action="GuessServlet" method="post" name=form> 猜小了,请再猜:<input type="text" name="num"> <input type="submit" value="提交" name="submit"> </form> </div> </div> </body> </html> 5. 猜对了 success.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>猜数游戏</title> <style type="text/css"> .guessD{ font-size: 24px; font-weight:bold; } </style> </head> <body> <div align="center"> <h1>猜数游戏</h1> <div class="guessD">
action="GuessServLet"method-"post"name-form><forma猜小了,请再猜:<input type="textname="num"><input type-"submit"value-"提交"name-"submit"</form></div></div></body></html>ROlargejspsmalljspGuessservetjavainputGuessjspInsert titlehere2http:/localhost:8080/test1/guess/successjsp?恭喜你,猜对了!您共猜了8次,这个数字就是16用时0.0秒单击超链接返回到inputGuess.jsp页面imputGuess.Jspn
5 <form action="GuessServlet" method="post" name=form> 猜小了,请再猜:<input type="text" name="num"> <input type="submit" value="提交" name="submit"> </form> </div> </div> </body> </html>