07第7章 Jsp文件操作10
- 格式:doc
- 大小:867.50 KB
- 文档页数:15
JSP课后习题参考答案●JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。
●服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。
当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。
2. 简述JSP两种体系结构。
答:JSP规范中分别称作JSP Model 1 和JSP Model 2,它们的本质区别在于处理批量请求的位置不同。
Model1,在Model1体系中,JSP页面独自响应请求并将处理结果返回客户。
这里仍然存在显示与内容的分离,因为所有的数据存取都是由JavaBean来完成的。
尽管Model1体系十分适合简单应用的需要,它却不能满足复杂的大型Web应用程序需要。
不加选择地随意运用Model 1,会导致JSP页内被嵌入大量的脚本片段或Java代码。
尽管这对于Java程序员来说可能不是什么大问题,但如果JSP页面是由网页设计人员开发并维护的这就确实是个问题了。
从根本上讲,将导致角色定义不清和职责分配不明,给项目管理带来不必要的麻烦。
Model2体系结构,是一种把JSP与Servlet联合使用来实现动态内容服务的方法。
它吸取了两种技术各自的优点,用JSP生成表示层的内容,让Servlet完成深层次的处理任务。
Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页面需要使用的Bean和对象,同时根据用户的动作决定把哪个JSP页面传给请求者。
在JSP页面内没有处理逻辑,它仅负责检索原先由Servlet创建的对象或JavaBean,从Servlet中提取动态内容插入静态模板。
分离了显示和内容,明确了角色的定义以及实现了开发者与网页设计者的分开。
项目越复杂,使用Model 2体系结构的优势就越突出。
第四章——内置对象一、教学内容1.File类2.使用字符流读写文件3.使用字节流读写文件4.文件下载5.文件上传二、教学目标1.理解File类,理解字节流和字符流;2.熟练掌握JSP中的文件上传和文件下载。
三、教学重点及难点1.重点:JSP中的文件上传和文件下载。
2.难点:字节流和字符流的读写。
四、教学方式与方法演示讲解法,任务驱动法,案例教学法,问题探究法,与多媒体教学演示相结合五、实施教学第一部分:新授课一、File类1.File类:提供了一些方法来操纵文件和获得文件的信息。
对于目录,Java把它当作一种特殊的文件,即文件名的列表。
通过File类的方法,可以得到文件或目录的描述信息,包括名称、所在路径、读写性、长度等,还可以进行创建新目录、创建临时文件、改变文件名、删除文件、列出一个目录中所有的文件或与某个模式相匹配的文件等操作。
–一个File类的对象,表示了磁盘上的文件或目录。
–File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作。
2.目录和文件的指定File dir = new File("C:/Tomcat 6.0/webapps/chapter5");if (dir!=null) out.println("当前目录是:"+ dir.getName()+"<br>");if (dir .isDirectory()){ S tring[] fs = dir .list();for(int i=0;i<fs.length;i++) out.println(fs[i]+"<br>"); }File f = new File("C:\\Tomcat 6.0\\webapps\\chapter5",”data.txt”);3.目录的创建:File dir1 = new File("C:\\Tomcat 6.0\\webapps\\chapter5"); File dir2 = new File(dir1,"mydir"); dir2.mkdir();if (dir2.isDirectory()) out.println("已成功创建目录mydir!");4.文件属性的获取File f = new File("C:\\Tomcat 6.0\\webapps\\chapter5","testFile.jsp"); out.println(f.getName());out.println(f.getAbsolutePath()); out.println(f.getParent()); out.println(f.length());5.列出目录中的文件File dir1 = new File("C:\\Tomcat 6.0\\webapps\\chapter5");if (dir1.isDirectory()){ File f[] = dir1.listFiles(); out.println("<br>"+dir1.toString()+"的目录有:");for(int i=0;i<f.length;i++){ if(f[i].isDirectory() ) out.println("<br> "+f[i].toString()); }out.println("<br>"+dir1.toString()+"的文件有:");for(int i=0;i<f.length;i++){ if( f[i].isFile() ) out.println("<br> "+f[i].toString()) ; } }5.列出指定类型的文件6.目录和文件的删除File dir1 = new File("C:\\Tomcat 6.0\\webapps\\chapter5"); if (dir1.isDirectory()) dir1.delete();二、使用字符流读写文件String s = application.getRealPath("/"); // out.println(s);File f = new File(s,"data.txt"); BufferedReader br = new BufferedReader(new FileReader(f));BufferedWriter bw = new BufferedWriter(new FileWriter(new File(s,"data2.txt")));char[] c = new char[256]; int n;while((n=br.read(c))!=-1){ bw.write(c,0,n); bw.flush(); }out.println("已成功通过字符流拷贝data.txt到data2.txt!"); br.close(); bw.close();三、使用字节流读写文件String s = application.getRealPath("/"); //out.println(s);File f = new File(s,"data.txt"); FileInputStream fis = new FileInputStream(f);BufferedInputStream bis = new BufferedInputStream(fis);FileOutputStream fos = new FileOutputStream(new File (s,"data1.txt"));BufferedOutputStream bos = new BufferedOutputStream(fos);byte[] b = new byte[256]; int n;while((n=bis.read(b))!=-1){ bos.write(b,0,n); bos.flush(); }out.println("已成功通过字节流拷贝data.txt到data1.txt!");fos.close(); fis.close(); bis.close(); bos.close();四、文件下载方法一:<a href=” C:/Tomcat 6.0/webapps/chapter5/2012.rar”>2012.rar</a>方法二:File f = new File("C:/Tomcat 6.0/webapps/chapter5","2012.rar");response.setHeader("Content-disposition","attachment;filename="+"2012.rar");五、文件上传//uploadForm.jsp<form action="toupfile.jsp" method="post" enctype="multipart/form-data"><input name="myword" type="file"> <input type="submit" name="Submit" value="提交"> </form>//upload.jspInputStream in = request.getInputStream( ); String path = application.getRealPath("/"); // out.print("path="+path);Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyymmddhhmmss"); String fname = sdf.format(d); out.println(path+"up\\"+fname+".jpg");FileOutputStream fos = new FileOutputStream(new File(path+"up\\",fname+".jpg"));byte b[] = new byte[256]; int n;while ((n=in.read())!=-1){ fos.write(b,0,n); }out.println("上传成功!"); in.close(); fos.close();第二部分:概括和总结第三部分:练习举例:针对重点和难点提问第四部分:布置作业第五部分:熟悉教材。
jsp教程JSP(JavaServer Pages)是一种用于在Web应用程序中创建动态内容的Java技术。
它允许开发人员将Java代码嵌入到HTML页面中,以便在Web服务器上动态生成页面。
本篇教程将介绍JSP的基本知识和用法。
首先,我们需要了解JSP的工作原理。
当客户端发送一个HTTP请求到服务器时,服务器会使用JSP引擎将JSP文件编译成Servlet,然后再将生成的Servlet代码编译成字节码。
最后,生成的字节码运行在Servlet容器中,用于处理HTTP请求并生成响应。
在使用JSP时,我们首先需要在Web应用程序中创建一个JSP文件。
JSP文件的扩展名通常为.jsp。
在JSP文件中,我们可以使用HTML标记编写页面的静态内容,同时可以使用JSP标记来插入Java代码。
JSP标记分为两种类型:指令和动作。
指令用于编译时信息的处理,通常放在JSP文件的开头。
主要的指令包括page、include和taglib等。
动作则用于运行时的处理,通常嵌套在HTML标记中。
常见的动作包括include、forward和param等。
在JSP文件中,我们可以通过脚本元素嵌入Java代码。
脚本元素由<%和%>括起来,可以在其中编写任何有效的Java代码。
脚本元素可以用于声明变量、定义方法、调用Java库等。
除了使用脚本元素嵌入Java代码外,JSP还提供了标准动作和标签库的支持。
标准动作是预定义的动作,可以直接使用而无需编写Java代码。
常见的标准动作包括<jsp:include>、<jsp:forward>和<jsp:useBean>等。
标签库则允许我们使用自定义标签来实现更复杂的功能。
JSP还提供了内置对象来方便开发人员访问和操作Web应用程序的各个方面。
内置对象包括request、response、session、application、out和pageContext等。
学习激励案例导航
电子商务
的
网站建设
基础
电子商务
网站概述
基本定义
5个应用特性
3层框架结构
3种分类
3个功能
丁磊张朝阳马云网站建设定义
网站7个概念
网站的标准
网站建设工具
定义与功能
电子商务网站
的模式
电子商务网站
的分类
电子商务
网站建设
平台运营商
自主研发
自助建站
使用电子商务
系统建设网站
第7章
本章知识结构框图
本章知识要点
1.JSP文件操作的基础知识;
2.JSP对目录的创建、删除操作;
3.JSP对文件的创建、删除、读取、写入。
本章学习方法
1.了解必须的理论基础,掌握必须的常用方法;
2.以实例练习带动知识理解;
3.通过综合实例全面深入理解文件及目录的操作。
JSP文件操作
须从刻苦的学习中成长。
今天,我们开始了电子商务网站建设的学习之旅。
扎扎实实地学好理论基础,广泛涉猎网站建设知识精华,必将成就你们辉煌的人生……
学习激励与案例导航
程序人员之求伯君
丁磊,网易公司首席架构设计师,1971年生于浙江宁波。
2007福布斯中国富豪榜排名第63位,资产75亿元,1997年6月创立网易公司,将网易从一个十几个人的私企发展成今天拥有近300名员工并在美国公开上市的知名互联网技术企业。
搜狐公司董事局主席兼首席执行官,1964年生于陕西省西安市,1986年毕业于清华大学物理系,同年以全国第39名成绩,考取李政道奖学金赴美留学,1998年2月25日,正式成立搜狐公司。
在张朝阳的领导下搜狐历经四次融资,于2000年7月12日,在美国纳斯达克成功挂牌上市。
面对一个个网络精英创造的辉煌,面对世人感叹创业的艰辛!做为大学生的我们一定明白,刻苦努力地学习,拥有过硬的本领,有朝一日,我们也会和他们一样,气宇轩昂地走在成功的大道上!
7.1Jsp文件操作概述
当前,应用软件离不开数据,数据在计算机中存在主要有两种形式,一是数据库,二是文件。
对存储在计算机中的文件进行操作是编程者经常用到的操作。
JSP为文件操作提供了丰富的类,这些类完成了文件操作的全部功能。
7.1.1 JSP文件操作基础
大量的文件组成了计算机的软件系统。
文件操作是互联网重要应用之一,也是Jsp课程不可缺少的关键内容之一,如图7-1所示,常见的QQ聊天软件、电子邮箱都是互联网文件应用的典型。
1.文件操作的功能
文件与数据库完成了对网络数据的存储、读取的操作。
实现了网络数据的安全、方便存储。
但比较小的文件存取使用文件方式操作更方便、更快速。
Jsp的文件操作功能完成了对服务器文件操作的全部功能,尤如操作本地硬盘目录和文件一样方便。
图7-1 常用的互联网文件操作实例
2.文件操作的内容
文件操作分为目录操作与文件操作两部分内容,实现对服务器硬盘中的文件及目录进行的各种操作功能。
3.文件操作分类
按照访问方式文件分为三类:
(1)顺序文件。
是按记录进入文件的先后顺序存放、其逻辑顺序和物理顺序一致的文件。
(2)随机文件。
存储由多条固定长度记录组成的文件。
(3)二进制文件。
图形文件及文字处理程序等计算机程序都属于二进制文件。
4.文件名的表示方法
每个文件都用文件名进行标识,文件的完整名称由文件名和文件路径两部分组成,在JSP中文件名的标识方法与硬盘中不同,例如,E:\JSP\index.jsp表示E盘JSP目录下的index.jsp文件。
而同样的文件及目录结构在JSP中使用的时候则要写成以下两种之一:(1)第一种写法:E:/JSP/index.jsp
(2)第二种写法:E:\\JSP\\index.jsp
7.1.2 Jsp文件操作的方法
JSP中的文件操作使用表7-1中的类完成。
7.1.3 File类详解
1.File类概述
该类不同于java.io.File类,在编写程序时应注意使用。
File类是文件和目录路径名的抽象表示形式。
主要用于保存单个上传文件的相关信息。
如上传文件的文件名、文件大小、文件数据等,不涉及对文件听读写操作。
此外,File还浏览子目录层次结构。
2.File类语法结构
第一种语法结构是建立文件目录的File对象;第二种语法结构是建立文件的File对象。
3.File类常用方法
表7-2 File类常用方法
7.2Jsp目录操作
文件存储在计算机的目录中,目录也称文件夹,欲应用JSP对文件进行操作,必须熟练掌握JSP对目录的操作。
JSP目录操作主要包括目录的建立、目录的删除两方面的内容。
本节将以实例方式详细讲解这两个方面的知识。
7.2.1 Jsp建立目录
目录的建立是网上常用操作之一,在JSP中可以很轻松实现目录的创建。
JSP目录的创建通过File对象的mkdir()或mkdirs()方法实现。
1.语法格式:
2.操作举例
表7-3 建立目录操作举例
7.2.2 Jsp删除目录
与目录建立相对应的是目录的删除。
JSP目录的删除是通过File对象的delete方法完成。
删除目录前一般要用file对象的exists()对目录是否存在进行检测。
1.语法格式:
2.操作举例
7.3Jsp文件操作
文件的创建、删除、读取、写入构成了文件操作的四大内容。
JSP为这四项操作提供了相应的方法,可以十分便捷地完成对文件的所有操作。
7.3.1 Jsp文件的建立
文件的建立要先建立文件File对象,然后调用File对象的CreateNewFile()方法实现文件的创建。
1.语法格式:
2.操作举例
表7-5 建立文件操作实例
7.3.2 Jsp文件的删除
文件的删除要先建立File对象,再用File对象的delete()方法实现文件的删除。
1.语法格式:
2.操作举例
7.3.3 Jsp文件的读取
文件的读取有两种方法:使用类FileInputStream读文件(字节流读文件)和使用类FileReader读文件(字符流读文件)。
文件的读取要先建立File对象,再用File对象的FileInputStream读文件或FileReader 读文件实现文件的读取。
1.语法格式:
2.操作举例
表7-8 文件读取实例
7.3.4 Jsp文件的写入
文件的写入有两种方法:使用类FileOutputStream写文件(字节流写文件)和使用类FileWriter写文件(字符流写文件)。
文件的写入要先建立File对象,再用File对象的FileOutputStream写文件或FileWriter写文件实现文件的读取。
1.语法格式:
2.操作举例
7.3.5 Jsp文件的其它操作
在网络中可以下载喜欢的图片和音乐,也可以上传自己的图片。
文件上传是动态网站的基本运用之一。
客户通过一个JSP页面,上传文件给服务器时,该JSP页面必须含有File类型的表单,并且表单必须将ENCTYPE的属性值设成“multipart/form-data”,File类型表单如下所示:<form action= “接受上传文件的页面”
method= “post” ENCTYPE=“ multipart/form-data”
<input Type= “File” name= “picture” >
</form>
JSP引擎可以让内置对象request调用方法getInputStream()获得一个输入流,通过这个输入流读入客户上传的全部信息,包括文件的内容以及表单域的信息。
2.文件下载
JSP内置对象response调用方法getOutputStream()可以获取一个指向客户的输出流,服务器将文件写入这个流,客户就可以下载这个文件了。
当JSP页面提供下载功能时,应当使用response对象向客户发送HTTP头信息,说明文件的MIME类型,这样客户的浏览器就会调用相应的外部程序打开下载的文件。
例如,Ms-Word 文件的MIME类型是application/msword,pdf文件的MIME类型是application/pdf。
点击点击资源管理器→工具→文件夹选项→文件类型可以查看文件的相应的MIME类型。
7.4Jsp文件操作综合实例
文件操作在实际应用中随处可见,最典型的实例是病毒查杀软件,这类软件即要对目录进行操作,又要对文件进行操作。
本节将编写一个简单的文件操作实例,即包括对目录的操作,也包括对文件的各项操作。
7.4.1 编程思想
7.4.2 程序注解。