一、实验目的和要求
1. 掌握JSP内置对象的使用
二、实验内容和原理
1. 制作一个购书页面,要求用户输入用户名和密码,并通过下拉菜单选择需要购买的图书,单击“确定”按钮,将信息发往服务器端,服务器端接收用户输入并输出用户名和所购图书。
2. 设计表单,制作读者选购图书的界面,当读者选中一本图书后,单击“确定”按钮,页面跳转到介绍该图书信息页面,要求使用response对象sendRedirect方法。
3. 猜字母游戏。随机生成一个字母,请输入者尝试猜出字母是什么(字母忽略大小写)。
要求:如果判断错误给出相关提示。如果有能力,尝试进行输入合法性校验。
三、实验环境
1. 硬件环境:
2. 软件环境:JDK1.5
四、算法描述及实验步骤
1. 算法描述
2. 实验步骤
(1).
buyBook.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <form action="bookDetail.jsp" method="post"> 请输入个人信息并选择要购买的图书 <br /> <br /> 用户名 <input type="text" name="user"><br /> 密码 <input type="password" name="pwd"><br /> 图书 <select name="book"> <option value="1">《偷影子的人》</option> <option value="2">《伊斯坦布尔假期》</option> <option value="3">《草房子》</option> <option value="4">《小王子》</option> </select> <br /> <input type="submit" value="提交"> <input type="reset" value="清空"> </form> </body> </html>
bookDetail.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <% request.setCharacterEncoding("utf-8"); String username = request.getParameter("user"); String book = request.getParameter("book"); out.println(username+"你好!"); %><br/><% if("1".equals(book)){ out.println("您所要购买的书为:《偷影子的人》"); } else if("2".equals(book)){ out.println("您所要购买的书为:《伊斯坦布尔假期》"); } else if("3".equals(book)){ out.println("您所要购买的书为:《草房子》"); } else if("4".equals(book)){ out.println("您所要购买的书为:《小王子》"); } %> </body> </html>
(2).
buyBook2.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <form action="bookDetail2.jsp" method="post"> <table border="1"> <tr> <td colspan="2">请选择需要的图书</td> </tr> <tr> <td>《在难搞的日子里笑出声来》</td> <td><input type="radio" value="1" name="book"></td> </tr> <tr> <td>《如果一切重来》</td> <td><input type="radio" value="2" name="book"></td> </tr> <tr> <td colspan="2"><input type="submit" value="提交"></td> </tr> </table> </form> </body> </html>
bookDetail2.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <table> <% String book = request.getParameter("book"); if ("1".equals(book)) { response.sendRedirect("/Test2/book1.jsp"); } else if ("2".equals(book)) { response.sendRedirect("/Test2/book2.jsp"); } %> </table> </body> </html>
book1.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <table border="1"> <tr> <td>《在难搞的日子里笑出声来》</td> </tr> <tr> <td>作者:大鹏</td> </tr> <tr> <td>定价:26.50</td> </tr> </table> </body> </html>
book2.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <table border="1"> <tr> <td>《如果一切重来》</td> </tr> <tr> <td>作者:马克·李维</td> </tr> <tr> <td>定价:19.20</td> </tr> </table> </body> </html>
(3).guessGame.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <% int num = (int) (Math.random() * 26); String s = "abcdefghijklmnopqrstuvwxyz"; session.setAttribute("guessChar", s.charAt(num)); %> 猜字母游戏 <br /> 游戏规则:电脑会随机自动生成一个字母,请您猜出这个字母是什么。字母忽略大小写。 <br /> <br /> 输入所猜的字母: <form action="guessResult.jsp" method="post"> <input type="text" name="userChar" maxlength="1"> <input type="submit" value="提交"> </form> </body> </html>
gameResult.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <% String userChar = request.getParameter("userChar"); String guessChar = session.getAttribute("guessChar").toString(); System.out.println(guessChar + "=====" + userChar); if (null != userChar) { if (userChar.equalsIgnoreCase(guessChar)) { out.print("您输入的是:" + userChar + "恭喜您,答对了!!"); } else { out.print("很抱歉,您猜错了!!"); if (userChar.charAt(0) < guessChar.charAt(0)) { out.println("您输入的是:" + userChar + ",比答案小"); } else if (userChar.charAt(0) > guessChar.charAt(0)) { out.println("您输入的是:" + userChar + ",比答案大"); } } } %> <br /> 输入所猜的字母: <form action="guessResult.jsp" method="post"> <input type="text" name="userChar"> <input type="submit" value="提交"> <a href="guessGame.jsp">重新开始游戏</a> </form> </body> </html>
五、调试过程
1. 编译过程
2. 调试过程
六、实验结果
用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确。
(1).
(2).
(3).