一、实验目的
理解和巩固课堂上所学的JSP的session和application内置对象知识,提高学生对知识的实际运用与软件编程实现能力。二、实验内容
使用application对象编写一个成语接龙的游戏。具体步骤如下:
1、编写2个JSP页面index.jsp、server.jsp。
2、在页面index.jsp中显示目前已有的成语接龙信息,在index.jsp的form中输入新的成语信息,单击“提交”按钮将输入的信息提交给页面server.jsp。(1) 在该页面中使用javascript,检查输入的成语信息是否为空,如果为空,给出提示,并且不能够跳转。
3、在server.jsp页面中进行验证。(1) 如果输入正确(即符合成语接龙规则),把数据存储到application中,并跳转到index.jsp页面。(2) 如果输入不正确(即不符合成语接龙规则),给出错误提示信息之后,重新定向到index.jsp页面。三、实验要求
- 文件名字不要使用中文,文件名字首字母小写。
- 第一个文件命名为为index.jsp。
3.所有文件打成一个文件压缩包提交。压缩包文件命名规则:计181-01-姓名。
3. 在程序中的title或者注释等地方加入个人名字信息。
4. 提交程序运行成功结果截图。
5. 在上面的功能完成的基础之上,可以尝试只用一个index.jsp页面完成上述功能。如果实现了该功能,请在提交的时候进行说明。
//index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>--xxx-index--</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="Javascript">
function checkvalid()
{
var a=form1.mes.value;
if(a.length==0)
{
alert("输入成语不能为空");
form1.name.focus();
return false;
}
else return true;
}
</script>
</head>
<body>
<h1>四字成语接龙</h1>
<%
//取出application中关键字是message的对象(成语内容)
String s = (String)application.getAttribute("message");
if(s!=null){
out.print(s);
}
else{
out.print("请输入成语开始接龙!<br>");
}
%>
<form name="form1" action="server.jsp" method="post">
四字成语输入:<input type="text" name="mes"/><br>
<input type="submit" value="提交" onClick="checkvalid()"/>
</form>
</body>
</html>
//chengyujielong.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>--成语接龙--</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="Javascript">
function checkvalid()
{
var a=form1.mes.value;
if(a.length==0)
{
alert("输入成语不能为空");
form1.name.focus();
return false;
}
else return true;
}
</script>
</head>
<body>
<h1>四字成语接龙</h1>
<%
//取出application中关键字是message的对象(成语内容)
String s = (String)application.getAttribute("message");
if(s!=null){
out.print(s);
}
else{
out.print("请输入成语开始接龙!<br>");
}
%>
<form name="form1" action="" method="post" onclick="avoidJump()">
四字成语输入:<input type="text" name="mes"/><br>
<input type="submit" value="提交" onClick="checkvalid()"/>
</form>
<script type="text/javascript">
fuction avoidJump(){
<%
Object messageObj=application.getAttribute("message");
String newci=(String)messageObj;
request.setCharacterEncoding("utf-8");
String content = request.getParameter("mes");
//判断成语输入符不符合规则
if(messageObj!=null&&!content.substring(0,1).equals(newci.substring(newci.length()-1,newci.length())))
{
out.print("输入不符合成语接龙规则!3秒钟后回到成语页面,重新输入!");
response.setHeader("refresh", "3;url=chengyujilong.jsp");//url=chengyujilong.jsp
}
else
{
String message="";
if(messageObj!=null){
message=(String)messageObj + "->";
}
//把成语内容message以“message”为关键字存储到application对象中
application.setAttribute("message", message+content);
out.print("您的四字成语已经提交!3秒钟后回到成语页面,继续接龙!");
response.setHeader("refresh", "3;url=chengyujilong.jsp");
}
%>}
</script>
</body>
</html>
//server.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>--xxx-server--</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<%
Object messageObj=application.getAttribute("message");
String newci=(String)messageObj;
request.setCharacterEncoding("utf-8");
String content = request.getParameter("mes");
//判断成语输入符不符合规则
if(messageObj!=null&&!content.substring(0,1).equals(newci.substring(newci.length()-1,newci.length())))
{
out.print("输入不符合成语接龙规则!3秒钟后回到成语页面,重新输入!");
response.setHeader("refresh", "3;url=index.jsp");
}
else
{
String message="";
if(messageObj!=null){
message=(String)messageObj + "->";
}
//把成语内容message以“message”为关键字存储到application对象中
application.setAttribute("message", message+content);
out.print("您的四字成语已经提交!3秒钟后回到成语页面,继续接龙!");
response.setHeader("refresh", "3;url=index.jsp");
}
%>
</body>
</html>