当前位置:文档之家› JSP程序设计教程(第7章)人民邮电大学出版社 第二版 郭珍

JSP程序设计教程(第7章)人民邮电大学出版社 第二版 郭珍

2013Java Mail核心类简介
Java Mail API中提供很多用于处理E-mail的类,其中 比较常用的有:Session(会话)类、Message(消息) 类、Address(地址)类、Authenticator(认证方式)类 、Transport(传输)类、Store(存储)类和Folder(文 件夹)类等7个类。这7个类都可以在Java Mail API的核心 包mail.jar中找到。
在实现文件上传时,还需要获取上传文件的文件名,这可以通过 FileItem类的getName()方法实现,getName()方法的原型如下:
public String getName();
例如,通过getName()方法获取上传文件的文件名的具体代码如下:
String fileName=item.getName(); //获取文件名
MimeMessage msg = new MimeMessage(mailSession);
实例化MimeMessage类的对象msg后,就可以通过 该类的相关方法设置电子邮件信息的详细信息。 MimeMessage类中常用的方法包括以下几个。 (1)setText()方法 setText()方法用于指定纯文本信息的邮件内容。该方法只 有一个参数,用于指定邮件内容。setText()方法的语法格 式如下:
1.Session类
Java Mail API中提供了Session类,用于定义保存诸 如SMTP主机和认证的信息的基本邮件会话。通过Session 会话可以阻止恶意代码窃取其他用户在会话中的信息(包 括用户名和密码13-8-21 ID:度飞鸿 13
7.1 JSP文件操作
Commons-FileUpload组件是Apache组织下 的jakarta-commons项目组下的一个小项目,该 组件可以方便地将multipart/form-data类型请求中 的各种表单域解析出来,并实现一个或多个文件 的上传,同时也可以限制上传文件的大小等内容。 在使用Commons-FileUpload组件时,需要先下 载该组件。该组件可以到 /fileupload/网站下载。
Properties props=new Properties();
创建Session对象可以通过以下两种方法,不过,通 常情况下会使用第二种方法创建共享会话。 (1)使用静态方法创建Session的语句如下:
Session session = Session.getInstance(props, authenticator析上传请求
List items = upload.parseRequest(request); // 获取全部的表单项
通过parseRequest()方法获取的全部表单项,将保存到List集合中, 并且保存到List集合中的表单项,不管是文件域还是普通表单域, 都当成FileItem对象处理。在进行文件上传时,可以通过FileItem 对象的isFormField()方法判断表单项是文件域还是普通表单域。如 果该方法的返回值为true,则表示是一个普通表单域,否则是一个 文件域。isFormField()方法的原型如下:
public List parseRequest(HttpServletRequst request) throws FileUploadException
request:HttpServletRequest对象。 例如,应用该方法获取全部表单项,并保存到items中的具体代码 如下:
-21
2013Java Mail核心类简介
props为java.util. Properties类的对象,authenticator 为Authenticator对象,用于指定认证方式。 (2)创建默认的共享Session的语句如下:
的一个对象,在实例化该类的对象时,需要指定一个 Session对象,这可以通过将Session对象传递给MimeMessage 的构造方法来实现,例如,实例化MimeMessage类的对象 message的代码如下: 《JSP程序设计教程》课件
il核心类21
7.1.3 解析上传请求
创建一个文件上传对象后,就可以应用这个对象解 析上传请求。在解析上传请求时,首先要获取全部 的表单项,这可以通过文件上传对象的 parseRequest()方法来实现。parseRequest()方法 原型如下:
setText(String content)
content:纯文本的邮件内容。
2013Java Mail核心类简介
Session defaultSession = Session.getDefaultInstance(props, authenticator);
props为java.util. Properties类的对象,authenticator 为Authenticator对象,用于指定认证方式。 如果在进行邮件发送时,不需要指定认证方式,可以使用 空值(null)作为参数authenticator的值,例如,创建一个 不需要指定认证方式的Session对象的代码如21
7.1 JSP文件操作
7.1.1 添加表单及表单元素 √ 7.1.2 创建上传对象
√ √
7.1.3 解析上传请求
2013-8-加表单及表单元素
在上传文件页面中,添加用于上传文件的表单及表单元素。 在该表单中,需要通过文件域指定要上传的文件。在表单中 添加文件域的语法格式如下:
long upFileSize=item.getSize(); //获取上传文件的大小
在上传文件时,还可以通过getContentType()方法获取上传文件的 类型。getContentType()方法的原型如下:
ng.String getContentType() 例如,通过getContentType()方法获取上传文件类型的具体代码如下:. String type=item.getContentType(); //获取文件类型
7.2.2 Java Mail核心类简介
每个基于Java Mail的程序都需要创建一个Session或 多个Session对象。由于Session对象利用 java.util.Properties对象获取诸如邮件服务器、用户名、密 码等信息,以及其他可在整个应用程序中共享的信息,所 以在创建Session对象前,需要先创建java.util.Properties 对象。创建java.util.Properties对象的代码如下:
在上传文件时,还可以通过getSize()方法获取上传文件大小。 getSize()方法的原型如下:
public long getSize()
2013析上传请求
例如,通过getSize()方法获取上传文件大小的具体代码如下:
Session mailSession=Session.getDefaultInstance(props,null);
2013Java Mail核心类简介
2.Message类
Message类是电子邮件系统的核心类,用于存储实际发 送的电子邮件信息。Message类是一个抽象类,要使用该抽 象类可以使用其子类MimeMessage,该类保存在javax.mail.internet 包中,可以存储MIME类型和报头(在不同的RFC文档中均 有定义)消息,并且将消息的报头限制成只能使用US-ASCII 字符,尽管非ASCII字符可以被编码到某些报头字段中。 如果想对MimeMessage类进行操作,首先要实例化该类
7.2.4 在JSP中应用Java Mail组件发送E-mail √
2013-8-Java Mail组件简介
Java Mail是Sun公司发布用来处理E-mail的API, 是一种可选的、用于读取、编写和发送电子消息的 包(标准扩展)。使用Java Mail可以创建MUA(邮 件用户代理“Mail User Agent”的简称)类型的程序, 它类似于Eudora、Pine及Microsoft Outlook等邮件 程序。其主要目的不是像发送邮件或提供MTA(邮 件传输代理“Mail Transfer Agent”的简称)类型程 序那样用于传输、发送和转发消息,而是可以与 MUA类型的程序交互,以阅读和撰写电子邮件。 MUA依靠MTA处理实际的发送任21
7.1.2 创建上传对象
在应用Commons-FileUpload组件实现文件上传时,需要 创建一个工厂对象,并根据该工厂对象创建一个新的文件 上传对象,具体代码如下:
//基于磁盘文件项目创建一个工厂对象 DiskFileItemFactory factory = new DiskFileItemFactory(); //创建一个新的文件上传对象 ServletFileUpload upload = new ServletFileUpload(factory);
<input name="file" type="file" size="尺寸">
name属性:用于指定文件域的名称。 type属性:用于指定标记的类型,这里设置为file,表示文件域。 size属性:用于指定文件域中文本框的长度。 注意:在实现文件上传时,必须将form表单的enctype属性设置 为“multipart/form-data”,否则将不能上传文件。
JSP程序设计教程
第7章 JSP实用组件
2013-8-21
1《JSP程序设计教程》课件 ID:度飞鸿第 7章 JSP实用组件

7.1 JSP文件操作 √ 7.2 发送E-mail √


7.3 JSP动态图表 √
7.4 JSP报表 √
2013-8-boolean isFormField()
例如,应用isFormField()方法判断文件域的具体代码如21
7.1.3 解析上传请求
相关主题