jsp 实验20

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

NewFile.jsp

<%@ page import = "java.io.*" %>

<%@ page contentType="text/html" %>

<%@ page pageEncoding = "utf-8" %>

<jsp:useBean id="english" class ="web.EnglishBean" scope="request"/>

<style>

   #tom{

      font-family:宋体;font-size:22;color:blue 

   }

</style>

<HTML>

<body id="tom" bgcolor="#ffccff">

<form action="readFile" id="tom" method="post">

选择一篇课文:<br>

<%  

File f = new File(".");

String jspPage=request.getServletPath();

String webDir = request.getContextPath();

jspPage =jspPage.substring(1);

webDir = webDir.substring(1);

String path = f.getAbsolutePath();

int index = path.indexOf("bin");

String webRoot = request.getRealPath("/");

String filePath = webRoot + "/englishText";

File fileDir=new File(filePath);

String name [] = fileDir.list();

%>  

<select id= tom name="fileName" size =1>

<%  

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

%>    

<option selected value='<%=name[i]%>'/><%=name[i]%>

<% 

 }

%>  

</select> 

<input type=hidden name='filePath' value='<%=filePath%>' />

<br><input type=submit id=tom value="学习" /><br>

<textArea id="tom" rows="15" cols="80">

<%=english.getFileContent()%>

</textArea><br>

<% 

if(english.getFileName().length()>0) {

%><br>

<%=english.getFileAudio()%>:<br>

<embed src ='englishAudio/<%=english.getFileAudio()%>' height="56" autostart='false'>

</embed>

<%}

%>

</form>

</body>

</HTML>

EnglishBean.java

package web;

public class EnglishBean {

   public String fileName="";

   public String fileContent="";

   public String fileAudio;

   public void setFileName(String str){

      fileName=str;

   }

   public String getFileName(){

      return fileName;

   }

   public void setFileContent(String str){

      fileContent=str;

   }

   public String getFileContent(){

      return fileContent;

   }

   public void setFileAudio(String str){

      fileAudio = str;

   }

   public String getFileAudio(){

      return fileAudio;

   }

}

ReadFile_Servlet.java

package handle;

import web.EnglishBean;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class eadFile_Servlet extends HttpServlet{

   public void init(ServletConfig config) throws ServletException{

      super.init(config);

   }

   public void service(HttpServletRequest request,HttpServletResponse response)throws                                               ServletException,IOException{

      EnglishBean fileBean=new EnglishBean();

      request.setAttribute("english",fileBean);

      String fileContent="";

      request.setCharacterEncoding("utf-8");

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

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

      if(filePath==null||fileName==null)

         return;

      if(fileName.length()==0||fileName.length()==0)

         return;

      fileBean.setFileName(fileName);

      String audioFileName =

      fileName.substring(0,fileName.lastIndexOf("."))+".mp3";

      fileBean.setFileAudio(audioFileName);

      try{  File f=new File(filePath,fileName);

            RandomAccessFile randomAccess = new RandomAccessFile(f,"r");

            String s=null;

            StringBuffer stringbuffer=new StringBuffer();

            while ((s=randomAccess.readLine())!=null){

                byte b[] = s.getBytes("iso-8859-1");

                stringbuffer.append("\n"+new String(b));

            }

            fileContent=new String(stringbuffer);

            fileBean.setFileContent(fileContent);

      }

      catch(Exception exp){

            fileContent ="读取失败"+exp.toString();

      }

      RequestDispatcher dispatcher=

      request.getRequestDispatcher("NewFile.jsp");

      dispatcher.forward(request, response);

    }

}

web.xml

<web-app>

    <servlet>

        <servlet-name>readFile</servlet-name>

        <servlet-class>handle.eadFile_Servlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>readFile </servlet-name>

        <url-pattern>/readFile </url-pattern>

    </servlet-mapping>

</web-app>

                                           (空间不够,可加附页)

效果图展示

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nginx配置https协议(测试环境)

第一步申请证书 首先申请证书这一步&#xff0c;晚上有很多种方式实现&#xff0c;可以自己用算法实现&#xff0c;也可以找在线生成的网站&#xff0c;我这里使用了在线网站 https://www.toolhelper.cn/SSL/SSLGenerate 第二步将证书放到对应的目录下 这里我们主要用cert.pe…

基于JSP技术的大学生校园兼职系统

开头语 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;可以通过文末的联系方式找到我。 开发语言 JSP 数据库 MySQL 技术 JSP JavaBeans 工具 MyEclipse、Tomcat、Navicat 系统展示 首页 学生登录界面 招聘信息界面 论坛中心界面 摘…

028、工具_Pipeline

Redis客户端执行一条命令分为如下四个过程: 1)发送命令 2)命令排队 3)命令执行 4)返回结果 其中1)+4)称为Round Trip Time(RTT,往返时间)。 Pipeline(它能将一组Redis命令进 行组装,通过一次RTT传输给Redis,再将这组Redis命令的执行结果按顺序返回给客户端,图3-…

2.6-5V/2.5A升9V12V18V方案 升压恒压IC 低功耗小家电芯片-H6391惠海

H6391升压恒压IC是一款适用于多种小家电和电子设备的电源管理升压恒压芯片。其设计特点有低功耗、高效率以及灵活配置等方面&#xff0c;以下是针对其特性的详细分析&#xff1a; 宽输入电压范围&#xff1a;H6391支持2.6-5V的输入电压范围&#xff0c;这使得它适合于由单节锂电…

【六】Linux安装部署Nginx web服务器--及编写服务器启动脚本

一、部署安装nginx 1、查看nginx是否安装依赖包 [rootlocalhost ~]# rpm -q zlib-devel pcre-devel package zlib-devel is not installed package pcre-devel is not installed 2、若没有则安装nginx 依赖包 [rootlocalhost ~]# yum -y install zlib-devel* pcre-dev…

线上3d数字艺术展让您在市场竞争中更具优势

在传统电商中&#xff0c;高昂的引流成本和激烈的行业竞争让获客变得尤为困难。随着web3技术的发展和覆盖&#xff0c;产品交互3D数字云展厅融合先进的web3D开发技术&#xff0c;构建了一个沉浸式数字空间&#xff0c;让客户随时随地通过电子设备进入展厅&#xff0c;享受自由浏…

vue 生命周期 钩子函数 keep-alive activated deactivated

一、activated deactivated 在被keep-alive包含的组件/路由中&#xff0c;会多出两个生命周期的钩子:activated 与 deactivated。在 2.2.0 及其更高版本中&#xff0c;activated 和 deactivated 将会在树内的所有嵌套组件中触发。activated在组件第一次渲染时会被调用&#x…

路虽远,行则将至 - 附暑期实习、秋招历程经验分享

前言 大家好 许久没有时间静下心来打开编辑器写文章了 忙碌暂过&#xff0c;难得一闲时 求学三年&#xff0c;终到离别时 回忆过往&#xff0c;枯燥且多彩 有一点经验&#xff0c;以文字形式分享&#xff0c;希望帮助到大家 可能是这段时间事多且杂&#xff0c;加上很长一…

日本2024年最受欢迎的转职行业是IT 通信

2024年有关机构针对超1000名人力资源专业人士进行了“推荐转职行业”的调查。结果显示&#xff0c;日本目前最受欢迎的转职行业是 1、“IT/通信行业”&#xff08;45.9%&#xff09;&#xff0c; 2、其次是“互联网/广告/游戏”&#xff08;31.9%&#xff09;&#xff0c; 3、“…

NFTScan 正式上线 Sei NFTScan 浏览器和 NFT API 数据服务

2024 年 6 月 12 号&#xff0c;NFTScan 团队正式对外发布了 Sei NFTScan 浏览器&#xff0c;将为 Sei 生态的 NFT 开发者和用户提供简洁高效的 NFT 数据搜索查询服务。NFTScan 作为全球领先的 NFT 数据基础设施服务商&#xff0c;Sei 是继 Bitcoin、Ethereum、BNBChain、Polyg…

UML类图之间的关系与对应的代码关系

UML类图之间的关系与对应的代码关系 1. 依赖关系1.1 图解1.2代码实现 2. 关联关系2.1图解2.2代码实现 3. 聚合关系3.1图解3.2代码实现 4. 组合关系4.1图解4.2代码实现 5. 泛化关系5.1图解5.2代码实现 6. 实现关系6.1图解6.2代码实现 在UML中&#xff0c;共有四种关系&#xff1…

php redis分布式锁

一&#xff0c;概念 在PHP中实现分布式锁通常可以使用数据库、缓存系统&#xff08;如Redis&#xff09;或者其他中央存储系统来保证在分布式系统中的数据一致性与同步。秒杀下单、抢红包等等业务场景&#xff0c;都需要用到分布式锁。 常规方案大概有七中 方案一&#xff1a;…

ollama系统更改模型存放位置

1.windows 设置完后可以在cmd中检查一下&#xff1a;echo %ollama_models% 2.linux 首先第一步&#xff1a;cd /etc/systemd/system/ 打开配置文件vim ollama.service 第二步&#xff1a;目录下的environment里面分号隔开添加OLLAMA_MODELS环境变量 第三步&#xff1a;source …

【算法训练记录——Day28】

Day28——回溯算法Ⅳ 1.复原IP地址2.[全排列](https://leetcode.cn/problems/permutations/submissions/539240290/)3.[全排列Ⅱ](https://leetcode.cn/problems/permutations-ii/description/) ● 93.复原IP地址 ● 78.子集 ● 90.子集II 1.复原IP地址 思路&#xff1a;相当于…

破布叶(Microcos paniculata)单倍型染色体级别基因组-文献精读22

Haplotype-resolved chromosomal-level genome assembly of Buzhaye (Microcos paniculata) 破布叶、布渣叶&#xff08;Microcos paniculata&#xff09;单倍型解析染色体级别基因组组装 摘要 布渣叶&#xff08;Microcos paniculata&#xff09;是一种传统上用作民间药物和…

因数与倍数 初级题目

最近又来更题了。这一次是《第三单元 因数与倍数第一部分》的初级题目。 参考答案见文尾 参考答案&#xff1a; CBDAABCBBACCCCCBCDCC

swift5 在当前控制器先dismiss后pop

如下图需要在present当前控制器时用全局变量firmwareUpgradePresentingVC先引用上一个控制器&#xff08;下面的代码亲测有效&#xff09; func dismissAndPop() {self.dismiss(animated: false) {firmwareUpgradePresentingVC.navigationController!.popViewController(animat…

VMware安装ubuntu22.4虚拟机超详细图文教程

一 、下载镜像 下载地址&#xff1a;Index of /ubuntu-releases/22.04.4/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 二、创建虚拟机 打开VMware点击左上角文件&#xff0c;创建新的虚拟机&#xff0c;打开后如下图&#xff1a; 下一步&#xff0c;镜像文件就是…

【perfetto分析性能学习笔记】

1.perfetto网站 https://ui.perfetto.dev/ 2.快捷键 3.线程状态分析 Runnable 表示线程正在运行或者等待CPU执行 Runnable (Preempted) 表示线程正在运行&#xff0c;但在运行过程中被其他高优先级线程抢占 Running 表示线程正在运行 Uninterruptible Sleep Uninterru…

6月13日 Qtday1

#include "mywidget.h" //腾讯会议的登录界面 MyWidget::MyWidget(QWidget *parent): QMainWindow(parent) {this->setFixedSize(468,830);//主窗口大小this->setStyleSheet("background-color:rgb(255,255,255)");//主窗口背景this->setWindowTi…