实验9 内置对象application

news2025/2/24 15:05:33

一、实验目的

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

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

编写代码,掌握application的用法。【参考课本例题4-16 留言板 】

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

example4_16.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>

<style>

#textStyle{

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

}

</style>

<body id='textStyle'bgcolor=#ffccff>

<form action='example4_16_pane.jsp'method='post'>

留言者:<input type='text'name='peopleName'size=40/>

<br>标题:<input type='text'name='title'size=42/>

<br>留言:<br>

<textArea name='contens' id='textStyle' rows="10" cols=36 wrap='physical'>

</textArea>

<br><input type='submit'id='textStyle' value='提交留言'name='submit'/>

</form>

<a href='example4_16_delete.jsp'>删除留言</a>

<a href='example4_16_show.jsp'>查看留言</a>

</body></html>

example4_16_pane.jsp

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

    pageEncoding="utf-8"%>

<%@ page import= "java.time.LocalDateTime" %>

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

   

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body>

<%!

    Stack<Integer>maxAmount = null;

    synchronized void addMess(ServletContext application, StringBuffer mess){

        int index= -1;

        if(!maxAmount.empty()){

        index = maxAmount.pop();

        mess.insert(0,"No."+index+".");

        application.setAttribute(""+index, new String(mess));

        }

    }

%>

<%

    if(maxAmount == null){

        maxAmount = new Stack < Integer>();//最多可以有999条留言

        for(int i=99999; i>=1; i--){

            maxAmount.push(i);

        }

    }

    boolean isSave= true;

    request.setCharacterEncoding("utf-8");

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

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

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

    if(peopleName.length() == 0 || title.length() == 0 || contents.length() == 0){

        isSave = false;

        out. print("<h2>" + "请输人留言者、标题和内容");

    }

        if(isSave){

            LocalDateTime dateTime = LocalDateTime. now();

            StringBuffer message = new StringBuffer();

            message.append("留言者:" + peopleName+"#");

            message.append("< br>留言标题«" + title+"»#");

            message.append("<br>留言内容:<br>" + contents+"#");

            String timeFormat =

                    String.format("%tY%<tm%<td,%<tH:%<tM:%<tS",dateTime);

                    message.append("<br>留言时间<br>" + timeFormat+"#");

                if(maxAmount.empty()){

                    out.print("<h2>"+"留言板已满,无法再留言"+"</h2");

                }

                else{

                    addMess(application,message);

                }

                           

            }

        %>

<br><a href= "example4_16.jsp">返回留言页面</a><br>

<a href = "example4_16_show.jsp">查看留言板</a>

</body>

</html>

example4_16_show.jsp

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

    pageEncoding="utf-8"%>

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

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body bgcolor=cyan>

<p style="font-family:宋体; font-size:14; color:black" >

    <a href = "main.jsp" >返回留言页面</a><br><br>

    <%

    Enumeration<String>e= application.getAttributeNames();

    while(e.hasMoreElements()){

        String key= e.nextElement( );

        String regex = "[1-9][0-9]*";

        if (key.matches(regex)){

            String message = (String) application.getAttribute(key);

            String [] mess = message.split("#");

            out. print(mess[0]);

            out. print(mess[1]);

            out. print(mess[2]);

            out. print(mess[3]);

            out. print("<br>------<br>");

           

        }

    }

%>

</body>

</html>

example4_16_delete.jsp

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

    pageEncoding="utf-8"%>

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

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body bgcolor=pink>

<p style="font-family:宋体; font-size:18; color:blue" >

管理员删除留言

<form action = "" method=post>

输入密码:<input type="password" name="password" size=12/><br>

输入留言序号:<input type="text" name="index" size=6/>

<br><input type="submit" name="submit" value="删除"/>

</form>

<%

String password=request.getParameter("passwoed");

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

    if(password==null)password="";

    if(index==null)index="";

    if(password.equals("123456")){

        Enumeration<String>e = application.getAttributeNames();

        while(e.hasMoreElements()){

        String key=e.nextElement();

            if(key.equals(index)){

                application.removeAttribute(key);

                out.print("<br>删除了第" + index+ "条留言<br>");

            }

        }

    }

%>

<a href= "example4_16.jsp">返回留言页面</a><br>

<a href = "example4_16_show.jsp">查看留言板</a>

</p></body></html>

效果图

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

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

相关文章

python——条件语句

概念 条件语句&#xff0c;简单的理解就是 满足条件执行这些代码&#xff0c;不满足则执行另一些代码 语法 #mermaid-svg-ITs2kv8f87vZuQhT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ITs2kv8f87vZuQhT .erro…

【网站项目】鲜花销售微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

excle如何设置自动显示星期几

目录 一.目的 二.范例结果 三.处理方式 一.目的 excle依据日期&#xff0c;设置后自动显示星期几。 二.范例结果 三.处理方式 公式1TEXT(XXX,DDDD) 公式2TEXT(XXX,DDD)

YoloV8改进策略:Block改进|轻量级的Mamba打造优秀的YoloV8|即插即用,简单易懂|附Block结构图(独家原创)更新中。。。。。

摘要 无Mamba不狂欢&#xff0c;今天给大家带来一个基于轻量级Mamba的改进。模块简单易懂&#xff0c;即插即用&#xff01; 带领大家去征服更高的领域。 论文&#xff1a;《LightM-UNet&#xff1a;Mamba 辅助的轻量级 UNet 用于医学图像分割》 https://arxiv.org/pdf/2403…

欢迎加入PenPad Season 2 ,获得勋章以及海量 Scroll 生态权益

PenPad 是 Scroll 生态中的首个 LaunchPad 平台&#xff0c;该平台继承了 Scroll 生态的技术优势&#xff0c;具备包括隐私在内的系列特点&#xff0c;同时且也被认为是 Scroll 生态最重要的价值入口之一。Penpad 与 Scroll 官方始终保持着合作&#xff0c;同时该项目自启动以来…

解决VM报错:不支持虚拟化的 amd-v/rvi

安装了VMware之后&#xff0c;想测试一下虚拟机嵌套。在勾选虚拟机CPU的虚拟化AMD-V/RVI之后&#xff0c;竟然无法启动&#xff0c;提示“此平台不支持虚拟化的 amd-v/rvi”。 上网找了一下资料&#xff0c;发现是因为Hyper-V与VMware冲突以及Windows Defender的内核隔离导致的…

【基础知识】计算机国企爱考的二进制知识、大学生必须掌握

二进制与十进制相互转换的详细过程及例题解析 二进制和十进制是两种常用的数制系统。二进制系统仅使用0和1两个数字&#xff0c;而十进制系统则使用0到9的十个数字。在计算机科学和数字电路设计等领域&#xff0c;经常需要在这两种数制之间进行转换。本文将详细介绍二进制与十…

(二)ffmpeg 下载安装以及拉流推流示例

一、ffmpeg下载安装 官网&#xff1a;https://www.ffmpeg.org/ 源码下载地址&#xff1a;https://www.ffmpeg.org/download.html#releases 下载源码压缩包 下载完成之后解压并在该目录下打开命令窗口 安装依赖环境&#xff1a; sudo apt-get install build-essential nasm …

组合数学<1>——组合数学基础

今天我们聊聊组合数学。(本期是给刚刚学习组合数学的同学看的&#xff0c;dalao们可以自行忽略) 建议:不会求逆元的出门左转数论<2>&#xff0c;不会数论的出门右转数论<1>。 加乘原理 加乘原理小学奥数就有。 总的来说:加法原理:分类;乘法原理:分步 比如说&a…

OJ 【难度1】【Python】完美字符串 扫雷 A-B数对 赛前准备 【C】精密计时

完美字符串 题目描述 你可能见过下面这一句英文&#xff1a; "The quick brown fox jumps over the lazy dog." 短短的一句话就包含了所有 2626 个英文字母&#xff01;因此这句话广泛地用于字体效果的展示。更短的还有&#xff1a; "The five boxing wizards…

【我的小工具】生成React页面类

有了数据表的结构信息&#xff0c;就能生成React 的页面类&#xff0c;快捷方便。 生成界面如下&#xff1a; 生成的React FrmUser.js页面如下&#xff1a; 只需再写里面的操作逻辑代码。

存储革新:下一代低功耗PCM相变存储器

引言 由于Optane&#xff08;实质为PCM相变存储器&#xff09;被intel放弃以后&#xff0c;小编一直在关注业内有关SCM存储级内存&#xff08;PCM、ReRAM等&#xff09;相关的研究进展。比如之前发布的内容&#xff0c;供存储随笔的读者参考&#xff01; 字节跳动入局存储内存…

如何应用电桥电路的原理?

电桥电路是一种常用的测量技术&#xff0c;它利用了四个电阻的网络来检测电路的平衡状态。在平衡状态下&#xff0c;电桥的输出电压为零&#xff0c;这种特性使得电桥电路非常适合于精确测量电阻、电感、电容等电气参数&#xff0c;以及用于传感器和测量设备中。以下是电桥电路…

第十二届蓝桥杯真题做题笔记

2、卡片 笔记&#xff1a; 直接巧用排列组合求解即可&#xff1a; 我们通过对样例说明进行分析可知&#xff1a;想要分给n个小孩&#xff0c;那么我们就需要满足C(K, 2) K > n才能满足。 #include<bits/stdc.h> using namespace std;int com(int up, int down){i…

从文字到思维:呆马GPT在人工智能领域的创新之旅

引言 生成式预训练变换器&#xff08;Generative Pre-trained Transformer&#xff0c;简称GPT&#xff09;领域是人工智能技术中的一大革新。自OpenAI推出第一代GPT以来&#xff0c;该技术经历了多代发展&#xff0c;不断提升模型的规模、复杂度和智能化程度。GPT模型通过在大…

AI大模型日报#0411:国内首款音乐大模型、面壁智能数亿融资、MyScale AI开源

导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。 ​标题: 大模型做时序预测也很强&#xff01;华人团队激活LLM新能力&#xff0c;超越一众传统模型实现SOTA 摘要: 大语言模型通过新提…

从零开始学Spring Boot系列-集成MyBatis-Plus

在Spring Boot应用开发中&#xff0c;MyBatis-Plus是一个强大且易于使用的MyBatis增强工具&#xff0c;它提供了很多实用的功能&#xff0c;如代码生成器、条件构造器、分页插件等&#xff0c;极大地简化了MyBatis的使用和配置。本篇文章将指导大家如何在Spring Boot项目中集成…

git学习 1

打开自己想要存放git仓库的文件夹&#xff0c;右键打开git bush&#xff0c;用git init命令建立仓库 用 ls -a(表示全都要看&#xff0c;包括隐藏的)可以看到git仓库 也可以用 git clone 接github链接&#xff08;点code选项里面会给链接&#xff0c;结尾是git的那个&#xf…

如何用Java后端处理JS.XHR请求

Touching searching engine destroies dream to utilize php in tomcat vector.The brave isn’t knocked down&#xff0c;turn its path to java back-end. Java Servlet Bible schematic of interaction between JS front-end and Java back-end Question 如何利用Java…

自动驾驶定位算法-粒子滤波(Particle Filter)

自动驾驶定位算法-粒子滤波(Particle Filter) 自动驾驶对定位的精度的要求在厘米级的&#xff0c;如何实现厘米级的高精度定位呢&#xff1f;一种众所周知的定位方法是利用全球定位系统(GPS)&#xff0c;利用多颗卫星的测量结果&#xff0c;通过三角测量(Triangulation)机制确…