实验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字…

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

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

libVLC 视频界面分割

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

原码的除法运算

目录 王道考研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定位的原理、实现方式、应用场景…

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

程序员会消失&#xff0c;真的吗&#xff1f;大模型的下一站是什么&#xff1f;开发者的机会在哪里&#xff1f;什么才是最好用的AI应用开发工具&#xff1f;在4月16日举办的2024百度Create AI开发者大会上&#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; 前几篇博…

宏观认知第一篇--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;会可以获得鸡蛋&…

.a和.so库文件是什么?

我们在编译开源代码后&#xff0c;通常会生成.a和.so这两个库文件&#xff0c;这两个文件有什么区别&#xff1f;又如何使用&#xff1f; 在 Linux 中&#xff0c;.a 和 .so 文件都是库文件&#xff0c;但它们有一些区别&#xff1a; 静态库文件&#xff08;.a&#xff09;&am…

SSH远程登陆系统(RedHat9)

ssh的基本用法 ssh hostname/IP # 如果没有指定用什么用户进行连接&#xff0c;默认使用当前用户登录 ssh –l username hostname/IP ssh usernamehostname ssh usernameIP在第一次连接到服务器时&#xff0c;会自动记录服务器的公钥指纹信息 如果出现密钥变更导致错误可以…

L2-2 巴音布鲁克永远的土(二分+并查集)

思路&#xff1a;我们可以二分答案&#xff0c;然后判断当前答案合不合理。 对于判断答案合理&#xff0c;可以用并查集&#xff0c;看mid能否把所有检查点连进一个集合中&#xff0c;枚举每个结点&#xff0c;如何当前结点周围的四个方向可以连的话&#xff0c;就加进同一个集…

贪心算法|435.无重叠区间

力扣题目链接 class Solution { public:// 按照区间右边界排序static bool cmp (const vector<int>& a, const vector<int>& b) {return a[1] < b[1];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {if (intervals.siz…

基于 OpenHarmony 音符检测实现原理

一、音符检测的基本原理 本文基于 OpenHarmony 开源系统提供了一种音符检测的原理方法&#xff0c;结合多首音乐&#xff0c;运用了 python 和 C 两种编程环境实现了预期的检出效果。旨在为振动马达(vibrator)提供音乐节奏感的触觉效果&#xff0c;代码所在目录 .\base\sensor…

2024.4.12蚂蚁庄园今日答案:豆腐在烹调时容易碎有什么办法可以避免?

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

JDK版本升级后连不上MySQL数据库的问题

1. 问题描述 用户在将 JDK 版本从 8 升级到 11 后&#xff0c;发现应用无法连接到 MySQL 数据库&#xff0c;出现连接超时或连接被拒绝的错误。 例如出现如下报错信息&#xff1a; 可能原因&#xff1a; JDBC驱动版本不兼容&#xff1a; 新的 JDK 11 可能需要使用更高版本的 My…