实验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.mzph.cn/news/808268.shtml

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

相关文章

ad原理图库的创建及引入

SCH是原理图库。 PCB是封装库。 法1 小器件 1.创建lib 保存路径 2.创建器件 3.绘制器件 右击》放置》选择要放置的东西》左键放置&#xff0c;右键结束。 放置引脚快捷↓ 【Name】:用于输入库元件引脚的功能名称.  【Designator】:用于设置引脚的编号 选择器件后电机T…

EEPROM读写案例(以AT24C02为例)

本篇文章主要是在学习单片机串行接口时的学习经历&#xff0c;主要侧重于驱动程序的讲解。下文将通过ESP32S3、STM32两款MCU进行编写驱动案例。 1、AT24C02简要说明 AT24C02是美国微芯科技公司生产的电擦写式只读存储器系列中的一款&#xff0c;其容量为2K位&#xff08;即256字…

前端项目部署教程——有域名无证书

一、拉取nginx镜像 docker pull nginx //先拉取nginx镜像二、打包前端项目 1、将Vue打包项目传输到/usr/local/vue/下blog和admin文件夹下 2、在/usr/local/nginx下创建nginx.conf文件&#xff0c;格式如下&#xff1a; events {worker_connections 1024; }http {include …

每日OJ题_BFS解决FloodFill④_力扣130. 被围绕的区域

目录 力扣130. 被围绕的区域 解析代码 力扣130. 被围绕的区域 130. 被围绕的区域 难度 中等 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O &#xff0c;找到所有被 X 围绕的区域&#xff0c;并将这些区域里所有的 O 用 X 填充。 示例 1&#xff1a; 输入&…

设计模式: 结构型之外观模式(11)

外观模式概述 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它为复杂的系统、程序库或框架提供一个简单&#xff08;但有限&#xff09;的接口这种模式的核心理念是隐藏系统的复杂性&#xff0c;仅对外暴露一个简化的接口&#xff0c;使得…

libVLC 视频界面分割

先看看分割后的界面吧&#xff0c;根据分割的数量&#xff0c;来分割视频画面。 其实视频界面分割很简单&#xff0c;看过叠加窗口的这篇文章&#xff0c;不难理解&#xff0c;如何分割。 libVLC 视频窗口上叠加透明窗口-CSDN博客 如果还是不懂的话&#xff0c;我讲解一下原理…

【c++】-对象的初始化-构造函数和析构函数区别联系-总结

对象的初始化 1.构造函数和析构函数 构造函数和析构函数是在类体中说明的两种特殊的成员函数。构造函数的功能是在创建对象时&#xff0c;使用给定的值来将对象初化。析构函数的功能是用来释放一个对象的&#xff0c;在对象删除前&#xff0c;用它来做一些清理工作&#xff0…

原码的除法运算

目录 王道考研ppt&#xff1a; 个人理解&#xff1a; 手算整数的除法&#xff1a; ​编辑 手算二进制的除法&#xff1a; 用机器实现除法&#xff1a; 方法一&#xff1a;恢复余数法 第二种方法&#xff1a;加减交替法 王道考研ppt&#xff1a; 个人理解&#xff1a; 手…

政安晨:【深度学习神经网络基础】(三)—— 激活函数

目录 线性激活函数 阶跃激活函数 S型激活函数 双曲正切激活函数 修正线性单元 Softmax激活函数 偏置扮演什么角色&#xff1f; 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨…

【完全背包求方案数问题】AcWing1023.买书(赋练习题目)

【题目链接】活动 - AcWing 输入样例1&#xff1a; 20输出样例1&#xff1a; 2输入样例2&#xff1a; 15输出样例2&#xff1a; 0输入样例3&#xff1a; 0输出样例3&#xff1a; 1 【代码】 //1023.买书——完全背包问题#include<bits/stdc.h>using namespace st…

IP定位的原理及应用场景

IP定位&#xff0c;即通过IP地址来确定一个设备或用户所在的大致地理位置&#xff0c;是一项在现代网络时代中愈发重要的技术。它广泛应用于网络安全、数据分析、广告投放等多个领域&#xff0c;为人们的生活和工作带来了极大的便利。本文将从IP定位的原理、实现方式、应用场景…

基于springboot的大型商场应急预案管理系统源码数据库

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了大型商场应急预案管理系统的开发全过程。通过分析大型商场应急预案管理系统管理的不足&#xff0c;创建了一个计算机管理大型商场应急预案管理系统的方案。文章…

百度Create AI开发者大会剧透丨用好三大AI神器 ,人人都是开发者

程序员会消失&#xff0c;真的吗&#xff1f;大模型的下一站是什么&#xff1f;开发者的机会在哪里&#xff1f;什么才是最好用的AI应用开发工具&#xff1f;在4月16日举办的2024百度Create AI开发者大会上&#xff0c;百度创始人、董事长兼首席执行官李彦宏将就这些备受瞩目的…

算法刷题day45

目录 引言一、母亲的牛奶二、奶牛回家三、扫雷 引言 今天主要复习了图论里的最短路、 B F S 、 D F S 、 F l o o d F i l l BFS、DFS、Flood\ Fill BFS、DFS、Flood Fill 算法&#xff0c;其实到现在感觉暴搜其实还挺好写的&#xff0c;现在刚好反过来了&#xff0c;不喜欢写…

Vue的学习之旅-part4

Vue的学习之旅-part1 vue的自带指令v-if v-else-if v-else虚拟DOM的复用v-show 与 v-if 的不同之处&#xff1a;v-if v-show各自合适的使用位置&#xff1a; v-for 循环v-for 循环遍历 :key"item" 绑定key&#xff0c;区分循环的内容循环的应用&#xff1a; 前几篇博…

257.二叉树的所有路径

给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 class Solution{public List<String> binaryTreePaths(TreeNode root){List<String> paths new ArrayList<>():c…

单片机蓝牙数据传输刚开始正常然后乱码什么原因

单片机蓝牙数据传输在开始时正常&#xff0c;但随后出现乱码的情况可能由多种原因引起。以下是一些可能的原因及解决方法&#xff1a; 波特率不匹配&#xff1a;单片机与蓝牙模块之间的波特率设置不一致可能导致数据传输错误。确保两者使用的波特率相同&#xff0c;并检查是否…

宏观认知第一篇--AI 是否就是第四次工业革命?

今年春节期间李一舟老师突然爆火&#xff0c;成功晋升为能与 ChatGPT 公司 CEO 齐名的中国 AI 大佬&#xff0c;赚到几个小目标后又火速被封&#xff0c;于是想着有空写篇小文章讲一讲跟普通人切身相关的话题-- AI 是否就是第四次工业革命&#xff1f; “AI 是否就是第四次工业…

【Java核心技术】第4章 对象与类

1 面向对象 2 自定义类 形式&#xff1a; class ClassName { field // 字段 constructor // 构造器&#xff08;构造函数&#xff09; method // 方法 } 如&#xff1a; class Employee {private String name;private double salary;private LocalDate hireDay;public Emp…

“桃花庵主”是我国哪位古代名人的称号?2024年4月12日蚂蚁庄园今日答案

原文来源&#xff1a;蚂蚁庄园今日答案 - 词令 蚂蚁庄园是一款爱心公益游戏&#xff0c;用户可以通过喂养小鸡&#xff0c;产生鸡蛋&#xff0c;并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料&#xff0c;使用鸡饲料喂鸡之后&#xff0c;会可以获得鸡蛋&…