Java Web应用开发-电子教案-刘淳 第10章

上传人:E**** 文档编号:89395492 上传时间:2019-05-24 格式:PPT 页数:27 大小:542KB
返回 下载 相关 举报
Java Web应用开发-电子教案-刘淳 第10章_第1页
第1页 / 共27页
Java Web应用开发-电子教案-刘淳 第10章_第2页
第2页 / 共27页
Java Web应用开发-电子教案-刘淳 第10章_第3页
第3页 / 共27页
Java Web应用开发-电子教案-刘淳 第10章_第4页
第4页 / 共27页
Java Web应用开发-电子教案-刘淳 第10章_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《Java Web应用开发-电子教案-刘淳 第10章》由会员分享,可在线阅读,更多相关《Java Web应用开发-电子教案-刘淳 第10章(27页珍藏版)》请在金锄头文库上搜索。

1、Java Web应用开发,中国水利水电出版社,第十章 JAVA WEB 综合应用,长沙民政职业技术学院,WEB应用开发精品课程,作者:刘淳教授,目标,掌握文件上传 掌握文件下载 掌握Ajax应用 技术 掌握JavaMail 技术,10.1文件上传,目前互联网上有很多可以文件上传的免费组件,可以直接下载来使用,其中基于Java的比较有名的文件上传组件有jspSmartUpload和common-fileupload组件。,使用common-fileupload实现文件上传,common-fileupload组件是apache的一个开源项目之一,可以从http:/commons.apache.or

2、g/fileupload/下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。,使用common-fileupload实现文件上传,jspSmartUpload是由网站(该网站已不可用)开发的一个可免费使用的全功能的文件上传/下载组件.,10.1文件上传-案例,例10-1使用common-fileupload实现文件上传示例, file1 ,文件上传表单,要实现文件上传一定要设置: enctype=“multipart/form-data“,10.1文件上传-案例,用于处理上传的文件的servlet,public class FileUpLoad extends HttpSe

3、rvlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setCharacterEncoding(“gb2312“); PrintWriter out = response.getWriter(); int count=0;/记录上传的文件数 /是创建FileItem对象工厂 DiskFileItemFactory factory=new DiskFileItemFactory();,/*设置内存

4、缓冲区的大小,如果文件大于该设置值,将使用临时文件缓存上传文件*/ factory.setSizeThreshold(1024*20); /获取WEB应用根目录 String dir = this.getServletContext().getRealPath(“/“); /*创建保存文件目录*/ String saveFilePath=dir+“WEB-INFupload“; File file=new File(saveFilePath); if(! file.exists() file.mkdir();,创建处理文件上传的工厂对象,/创建临时文件目录 String tempFilePat

5、h=dir+“temp“; file=new File(tempFilePath); if(! file.exists() file.mkdir(); /指定临时文件目录 factory.setRepository(new File(tempFilePath); /构建文件上传对象 ServletFileUpload upload = new ServletFileUpload(factory); /限制每个上传文件的大小,本例设为2MB upload.setFileSizeMax(1024*1024*2); /限制上传文件的总大小,本例设为4MB upload.setSizeMax(1024

6、*1024*4); /判断提交表单的类型是否为multipart/form-data if(!ServletFileUpload.isMultipartContent(request) return; ,10.1文件上传-案例,10.1文件上传-案例,try /*对requests对象进行解析,并把表单中的每一个输入项包装成一个fileItem 对象,并返回一个保存了所有FileItem的list集合*/ List list = upload.parseRequest(request); Iterator it=list.iterator(); /处理每一个FileItem while (it

7、.hasNext() /每一个item就代表一个表单输出项 FileItem item=it.next(); if(item.isFormField()/判断input是否为普通表单输入项 String formName= item.getFieldName(); String formValue=item.getString(); /在这里处理非文件表单项 else/开始处理上传的文件,/获取客户端包含完全路径的文件名 String fileName=item.getName(); if(fileName!=null) /截取文件名与扩展名 fileName=fileName.substri

8、ng(fileName.lastIndexOf(“)+1); /保存文件 item.write(new File(saveFilePath+fileName); /* 如果要将文件保存到数据库,可以通过下面的方法提到文件输入流 inputStream = item.getInputStream(); 请对考例10-3 */ count+; out.print(fileName+“上传成功“); ,10.1文件上传-案例,实现文件下载最直接最简单的方式就是把文件地址直接放到html或JSP页面的链接中。这样做的缺点是把文件在服务器上的路径暴露了,并且还无法对文件下载进行其它的控制。 在Java

9、WEB编程中主要使用下面三种 方法: (1) 用流方法实现文件的下载 :参考例10-4 (2)用jspSmartUpload(开源的文件上传、下载组件)实现文件的下载 .参考例10-5 (3)利用RequestDispatcher实现文件下载 :参考例10-6,10.2文件下载,Ajax是Asynchronous JavaScript and XML(异步 JavaScript 和 XML)的缩写,它并不是一门新的语言或技术,它实际上是多项技术的组合,主要包括以下几种技术: (1)使用XHTML和CSS实现数据的统一化和标准化显示; (2)使用DOM实现浏览器端丰富的动态显示效果以及与服务器进

10、行交互; (3)使用XML和XSLT实现浏览器与服务器之间的数据交换与处理; (4)使用XMLHttpRequest对象进行浏览器与服务器之间的异步数据读取; (5)使用JavaScript绑定和处理所有数据; 上述技术的核心部份为JavaScript、XMLHttpRequest、DOM。,10.3 Ajax应用,10.3 Ajax应用,1Ajax的工作原理 Ajax的工作原理相当于在用户和服务器之间加了个中间层(事实上是启用了一个后台线程与服务器交互),使用户操作与服务器响应异步化。,2Ajax核心工作过程 (1)对象的初始化:主要是创建XMLHTTPRequest对象 (2)发送数据:设

11、置响应方法,发送HTTP请求,然后发送数据。 (3)服务器接收请求并进行处理 (4)客户端接收响应并处理,10.3 Ajax应用,3XMLHTTPRequest对象常用属性与方法 XMLHTTPRequest对象常用属性,XMLHTTPRequest对象主要方法与功能,10.3 Ajax应用,10.3.2 应用Ajax的基本步骤,(1)创建XMLHTTPRequest:参考代码如下:,function createXMLHttpRequest() var xmlreq = false; if (window.XMLHttpRequest) / 在非Microsoft浏览器中创建XMLHttpR

12、equest对象 xmlreq = new XMLHttpRequest(); else if (window.ActiveXObject) /通过MS ActiveX创建XMLHttpRequest try / 尝试按新版InternetExplorer方法创建XMLHttpRequest对象 xmlreq = new ActiveXObject(“Msxml2.XMLHTTP“); catch (e1) ,try / 尝试按老版InternetExplorer方法创建XMLHttpRequest对象 xmlreq = new ActiveXObject(“Microsoft.XMLHTTP

13、“); catch (e2) return xmlreq; ,httpRequest = createXMLHttpRequest();,10.3 Ajax应用,(2)为XMLHTTPRequest对象注册响应处理函数:参考代码如下:,httpRequest. onreadystatechange=function() processResponse(httpRequest) ;,processResponse为处理响应的函数,参考第(4) 步,(3)发送数据(GET):参考代码如下:,httpRequest.open(“GET“, “url“, true); httpRequest.send

14、(null);,10.3 Ajax应用,对于POST请求,数据必须由send()来发送,而且在发送数据之前,还要设置HTTP的“Content-Type”请求头为“application/x-www-form-urlencoded”。 参考代码如下:,httpRequest.open(“POST“, “url“, true); httpRequest.setRequestHeader(“Content-Type“,“application/x-www-form-urlencoded“); httpRequest.send(paramName=value,(4)处理服务器传回的数据: 当XMLH

15、TTPRequest对象与服务器建立连接并发给数据之后,服务器会在不同的处理阶段向XMLHTTPRequest回传状态码,并触发XMLHTTPRequest对象的onreadystatechange事件,第二步注册的processResponse函数就会被自动调用。下面是一个简单的响应处理函数的参考代码:,function processResponse(httpRequest) if (httpRequest.readyState = 4) if (httpRequest.status = 200) /处理服务器回传的数据,本例仅将服务器传回的数据用对话框显示出来 alert (httpRe

16、quest.responseText) else alert(“HTTP error: “+ httpRequest.status); ,Ajax应用案例参考例10-7,10.4 JavaMail,在Java Web开发中,使用JavaMail API能够实现发送、接收邮件的功能。JavaMail API对SMTP、POP3、IMAP提供了支持,封装了电子邮件处理中用到的邮件对象、发送功能、身份认证功能及接收邮件功能等。,10.4.1 JavaMail分层体系,JavaMail分为三层:抽象层、Internet邮件实现层、协议实现层,JavaMail API包括抽象层、Internet邮件实现层。,该层由服务提供商实现对特定协议的支持,10.4.2 JavaMail核心API,1Session类:Session类定义了

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号