实验8 内置对象session

一、实验目的

掌握怎样在JSP中使用内置对象session

二、实验项目内容(实验题目)

编写代码,掌握session的用法。【参考课本4.6.5 】

三、源代码以及执行结果截图:

choiceGrade.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body bgcolor = #ffccff>

     <style>

     #textStyle{

         font-family:宋体; font-size:26;color:bule

         }

     </style>

    

     <form action="giveTest.jsp" id="textStyle" method=post name=form>

     <input type=radio name="grade"value="5"/>初级

     <input type=radio name="grade"value="7"checked="OK"/>中级

     <input type=radio name="grade"value="10"/>高级

     <br><input type="submit"name="submit"id="textStyle"value="提交"/>

    

     <input type="reset" id="textStyle"value="重置"/>

    

     </form>

</body>

</html>

giveTest.jsp

<%@ page language="java" contentType="text/html; utf-8"

    pageEncoding="utf-8"%>

<%@ page import="java.util.ArrayList" %>

<%@ page import="java.util.Random" %>

  

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body bgcolor = #ffccff>

     <style>

     #textStyle{

         font-family:宋体; font-size:26;color:bule

         }

     </style>

<%! static ArrayList<String>list=new ArrayList<String>();

     static{

        

         list.add("");

         list.add("");

         list.add("🔺");

         list.add("");

         list.add("");

     }

     String getNextTestString(int length){

         StringBuffer buffer=new StringBuffer();

         Random random=new Random();

         for(int i=0;i< length;i++){

              int index=random.nextInt(list.size());

              String str=list.get(index);

              buffer.append(str);

         }

              return new String(buffer);

     }

     %>

     <%

     String grade = request.getParameter("grade");

              if(grade == null){

              grade = (String) session.getAttribute ("grade");

              }

              int number = Integer.parseInt(grade);

              session.setAttribute("grade",grade);

              String testString= null;

              String yesORNo = null;

              yesORNo= (String)session.getAttribute("yes0RNo");

              if(yesORNo == null) {

                   testString = getNextTestString(number) ;

                   session.setAttribute ("yes0RNo","yes");

                   session.setAttribute("testString",testString);

                      

                       }

             

                       else if(yesORNo. equals("yes")){

                        response. sendRedirect("answerTest.jsp");

                       return;

                       }

             

                       else if(yesORNo. equals("no")){

                       testString = getNextTestString (number);

                       session. setAttribute (" yes0RNo" ,"yes");

                       session. setAttribute ("testString",testString);

                        }

              %>  

<p>

id="textStyle">5秒记住您看到的字符序列:<br>

<%=testString %>

<br>5秒后,将转到答题页.

<% response.setHeader(" refresh","5");

%>

</p>         

</body>

</html>

answerTest.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body bgcolor = #ffccff>

     <style>

     #textStyle{

         font-family:宋体; font-size:26;color:bule

         }

     </style>

     <form action="judgeAnswer.jsp"id="textStyle" method=post>

     <%

     int n=Integer.parseInt((String)session.getAttribute("grade"));

     session.setAttribute("yesORNo","no");

     for(int i=1;i<=n;i++){

         out.print("<br>"+i+"个字符:");

         out.print("<input type=radio name=R"+i+" value=''/>"+

                   "<input type=radio name=R"+i+" value=''/>"+

                   "<input type=radio name=R"+i+" value='🔺'/>🔺"+

                   "<input type=radio name=R"+i+" value=''/>"+

                   "<input type=radio name=R"+i+" value=''/>");

     }

             

     %>

     <br><input type="submit" name="submit" id="textStyle" value="提交" />

<input type="reset" id="textStyle" value="重置" />

</form>

</body>

</html>

judgeAnswer.jsp

<%@ page language="java" contentType="text/html;utf-8"

    pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body bgcolor =while>

     <p style="font-family:宋体; font-size:26;color:bule">

<%

session.setAttribute("yesORNo","no");

request.setCharacterEncoding("utf-8");

int n=Integer.parseInt((String)session.getAttribute("grade"));

StringBuffer buffer=new StringBuffer();

for(int i=1;i<=n;i++){

     buffer.append(request.getParameter("R"+i));

     out.print(""+request.getParameter("R"+i));

}

String userAnswer=new String(buffer);

String testString=(String)session.getAttribute("testString");

if(testString.equals(userAnswer)){

     out.print("<br>您记忆还不错也!");        

}

else{

     out.print("你戳啦!答案是:<br>"+testString);

}

%>

<br><a href="giveTest.jsp">返回,回去练习</a>

<br><br>

<a href="choiceGrade.jsp">重新选择级别</a>

</p>

</body>

</html>

效果图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/618453.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓刷机fastboot分段传输

win10 fastboot 无法识别&#xff0c;驱动下载地址GitHub - xushuan/google_latest_usb_driver_windows 把inf文件更新到设备管理器驱动更新即可 问题 archive does not contain super_empty.img Sending vbmeta_a (4 KB) OKAY [ 0.117s] Writing …

伺服驱动器算法入门的一些建议和书籍推荐

希望此篇文章对想从事伺服驱动器的研发工作的一些刚刚入门的同学一些建议。 针对伺服驱动器的研发工作涉及的知识和需要掌握的技能主要分为两部分&#xff0c;第一是原理部分、第二是工程实践部分。原理部分的学习在此主要推荐大家查看一些入门书籍&#xff0c;本文章中也对书籍…

关于项目打包

除了自己常用的那种方式&#xff0c;也可以直接在文件夹下执行命令。 如果当前项目聚合了其他子模块的话&#xff1a; 先清理&#xff0c;再打包&#xff0c;同时跳过测试 如果打包后&#xff0c;然后项执行某个模块&#xff0c;进入当前文件夹下直接java -jar 和jar包名执行就…

微服务之Consul 注册中心介绍以及搭建

一、微服务概述 1.1单体架构 单体架构&#xff08;monolithic structure&#xff09;&#xff1a;顾名思义&#xff0c;整个项目中所有功能模块都在一个工程中开发&#xff1b;项目部署时需要对所有模块一起编译、打包&#xff1b;项目的架构设计、开发模式都非常简单。 当项…

模型训练-保存训练数据

1.目的 找到一个可运行的代码&#xff0c;可以每个epoch打印训练数据&#xff0c;但是不会保存。因为在改进模型需要这些训练数据进行对比&#xff0c;所以需要将每个epoch的训练数据保存下来&#xff0c;写到一个文件中。 2.解决方案1 直接问ChatGPT&#xff0c;提示词如下…

服务器主机关机重启告警

提取时间段内系统操作命名&#xff0c;出现系统重启命令&#xff0c;若要出现及时联系确认 重启命令&#xff1a; reboot / init 6 / shutdown -r now&#xff08;现在重启命令&#xff09; 关机命令&#xff1a; init 0 / shutdown -h now&#xff08;关机&#…

ASP.NET Core 标识(Identity)框架系列(二):使用标识(Identity)框架生成 JWT Token

前言 JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络上以 JSON 对象的形式安全地传输信息。 JWT 通常用于在用户和服务器之间传递身份验证信息&#xff0c;以便在用户进行跨域访问时进行身份验证。 JWT 由…

会声会影2024全新视频剪辑软件

会声会影 (CyberLink PowerDirector) 是一款既强大又易于使用的视频编辑软件&#xff0c;具有众多功能和工具&#xff0c;专为用户设计制作高质量的视频剪辑和制作。无论您是一个新手或是一个有经验的电影制作者&#xff0c;会声会影都适合您的需要。 生活即电影 软件下载地址&…

物联网:门锁RNBN-K18使用记录

摘要&#xff1a;对 RNBN品牌下 K18智能门锁日常使用操作经验记录。 常见问题&#xff1a; 1.门锁联网时&#xff0c;找不到 wifi 怎么办。 答&#xff1a;检查一下几个方面&#xff1a;1. wifi 信号是否是2.4G&#xff0c;2.wifi信号是否距离没锁很远。因为门锁只能获取到2…

python应用-os库操作目录

python自带的os模块提供了许多与操作系统交互的函数&#xff0c;适配多种操作系统&#xff0c;比如windows&#xff0c;mac&#xff0c;linux等&#xff0c;比如常用路径操作、进程管理、环境参数等都可通过os模块实现。 以下是自带的os.py中的前面一部分代码。 第一个红框中主…

Flutter第八弹 构建拥有不同项的列表

目标&#xff1a;1&#xff09;项目中&#xff0c;数据源可能涉及不同的模版&#xff0c;显示不同类型的子项&#xff0c;类似RecycleView的itemType, 有多种类型&#xff0c;列表怎么显示&#xff1f; 2&#xff09;不同的数据源构建列表 一、创建不同的数据源 采用类似Rec…

C++ | Leetcode C++题解之第27题移除元素

题目&#xff1a; 题解&#xff1a; class Solution { public:int removeElement(vector<int>& nums, int val) {int left 0, right nums.size();while (left < right) {if (nums[left] val) {nums[left] nums[right - 1];right--;} else {left;}}return lef…