实验五内置对象二--web

一、实验目的
理解和巩固课堂上所学的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页面。三、实验要求

  1. 文件名字不要使用中文,文件名字首字母小写。
  2. 第一个文件命名为为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>

おすすめ

転載: blog.csdn.net/weixin_45800653/article/details/107956199