JSP-Servlet-课件08-常用组件.pptx_第1页
JSP-Servlet-课件08-常用组件.pptx_第2页
JSP-Servlet-课件08-常用组件.pptx_第3页
JSP-Servlet-课件08-常用组件.pptx_第4页
JSP-Servlet-课件08-常用组件.pptx_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSP/Servlet应用开发,石兴民 4962415,第7章 常用组件,主要内容,7.1 JSP文件操作 7.2 发送E-mail 7.3 JSP动态图表 7.4 JSP报表,7.1 文件上传,Commons-FileUpload组件 Apache组织下jakarta-commons项目组下的一个小项目 该组件可以方便地将multipart/form-data类型请求中的各种表单域解析出来,并实现一个或多个文件的上传,同时也可以限制上传文件的大小等内容。 在使用Commons-FileUpload组件时,需要先下载该组件。该组件可以到/fileupload/网站下载。 需要同时下载commons-io组件,7.1 JSP文件操作,7.1.1 添加表单及表单元素 7.1.2 创建上传对象 7.1.3 解析上传请求, File to upload: Notes about the file: to upload the file! ,7.1.1 添加表单及表单元素,在上传文件页面中,添加用于上传文件的表单及表单元素。在该表单中,需要通过文件域指定要上传的文件。在表单中添加文件域的语法格式如下:,name属性:用于指定文件域的名称。 type属性:设置为file,表示文件域。 size属性:用于指定文件域中文本框的长度。,注意:在实现文件上传时,必须将form表单的enctype属性设置为“multipart/form-data”,否则将不能上传文件。,7.1.2 创建上传对象,应用Commons-FileUpload组件实现文件上传时,需要创建一个工厂对象: /基于磁盘文件项目创建一个工厂对象 DiskFileItemFactory factory = new DiskFileItemFactory(); /创建一个新的文件上传对象 ServletFileUpload upload = new ServletFileUpload(factory); 导入相应的类 import mons.fileupload.disk.DiskFileItemFactory; import mons.fileupload.servlet.ServletFileUpload;,7.1.3 解析上传请求,创建一个文件上传对象后,就可以应用这个对象解析上传请求。 通过文件上传对象的parseRequest()方法获取全部的表单项: public List parseRequest(HttpServletRequst request) throws FileUploadException 例如:List items = upload.parseRequest(request); / 获取全部表单项 List集合中的表单项,不管是文件域还是普通表单域,都当成FileItem对象处理。 在进行文件上传时,可以通过FileItem对象的isFormField()方法判断表单项是文件域还是普通表单域。,7.1.3 解析上传请求,获取上传文件的文件名 可以通过FileItem类的getName()方法实现: String fileName=item.getName(); 获取上传文件大小 long upFileSize=item.getSize(); 获取上传文件的类型 String type=item.getContentType();,7.2 发送E-mail,7.2.1 Java Mail组件简介 7.2.2 Java Mail核心类简介 7.2.3 搭建Java Mail的开发环境 7.2.4 在JSP中应用Java Mail组件发送E-mail,Java Mail开发环境,所需组件: Java Mail API 下载: /technetwork/java/index-138643.html JAF (JavaBeans Activation Framework) 下载: /products/javabeans/jaf/downloads/index.html 配置组件 将两个组件的jar文件: mail.jar和activation.jar复制到工程的WEB-INFlib目录中,Java Mail核心类,Session(会话)类 用于定义保存诸如SMTP主机和认证的信息的基本邮件会话。 Session对象利用java.util.Properties对象获取诸如邮件服务器、用户名、密码等信息 Properties props=new Properties(); props.put(“mail.smtp.host“,mailserver); props.put(“mail.smtp.auth“,“true“);,Java Mail核心类,Session(会话)类 创建Session对象 (1)使用静态方法创建Session: Session session = Session.getInstance(props, authenticator); (2)创建默认的共享Session Session defaultSession = Session.getDefaultInstance(props, authenticator); 创建一个不需要指定认证方式的Session对象: Session mailSession=Session.getDefaultInstance(props,null);,Java Mail核心类,Message(消息)类 核心类,用于存储实际发送的电子邮件信息。 Message是抽象类,要使用其子类ernet.MimeMessage 可以存储MIME类型和报头(在不同的RFC文档中均有定义)消息,并且将消息的报头限制成只能使用US-ASCII字符 实例化: MimeMessage msg = new MimeMessage(mailSession); MimeMessage类常用方法: (1)setText()方法 setText()方法用于指定纯文本信息的邮件内容。语法格式为: setText(String content),Java Mail核心类,(2)setContent()方法:用于设置电子邮件内容的基本机制,该方法包括两个参数,分别用于指定邮件内容和MIME类型。 setContent(Object content, String type) (3)setSubject ()方法:用于设置邮件的主题。 setSubject(String subject) (4)saveChanges()方法:保证报头域同会话内容保持一致。 (5)setFrom()方法:设置发件人地址。 msg.setFrom(new InternetAddress(from); (6)setRecipients()方法:用于设置收件人地址。 setRecipients(RecipientType type, InternetAddress addres);,Java Mail核心类,type: Message.RecipientType.TO /发送 Message.RecipientType.CC /抄送 Message.RecipientType.BCC /暗送 addres:收件人地址,可以为InternetAddress类的一个对象或多个对象组成的数组。 (7)setSentDate()方法:用于设置发送邮件的时间。 setSentDate(Date date); (8)getContent()方法:用于获取消息内容,该方法无参数。 (9)writeTo()方法:用于获取消息内容(包括报头信息),并将其内容写到一个输出流中。 writeTo(OutputStream os),Java Mail核心类,Address(地址)类 用于设置电子邮件的响应地址 抽象类,使用其子类ernetAuthenticator.InternetAddress 实例化该类的一个对象: (1)创建只带有电子邮件地址的地址 InternetAddress address = new InternetAddress(““); (2)创建带有电子邮件地址并显示其他标识信息的地址 InternetAddress address = new InternetAddress(““,“kkkk“);,Java Mail核心类,4. Authenticator(认证方式)类 通过用户名和密码来访问受保护的资源。 是一个抽象类,首先要创建一个Authenticator的子类,并重载getPasswordAuthentication()方法: class WghAuthenticator extends Authenticator public PasswordAuthentication getPasswordAuthentication() String username = “kkkk“; /邮箱登录账号 String pwd = “111222“; /登录密码 return new PasswordAuthentication(username, pwd); ,Java Mail核心类,5. Transport类 用于使用指定的协议(通常是SMTP)发送电子邮件。 Transport类提供了以下两种发送电子邮件的方法。 (1)只调用其静态方法send(),按照默认协议发送电子邮件: Transport.send(message); (2)首先从指定协议的会话中获取一个特定的实例,然后传递用户名和密码,再发送信息,最后关闭连接,代码如下: Transport transport =sess.getTransport(“smtp“); transport.connect(servername,from,password); transport.sendMessage(message,message.getAllRecipients(); transport.close();,Java Mail核心类,6. Store类 定义了用于保存文件夹间层级关系的数据库,以及包含在文件夹之中的信息。 在获取会话后,就可以使用用户名和密码或Authenticator类来连接Store类。与Transport类一样,首先要告诉Store类将使用什么协议: (1)使用POP3协议连接Store类 Store store = session.getStore(“pop3“); store.connect(host, username, password); (2)使用IMAP协议连接Stroe类 Store store = session.getStore(“imap“); store.connect(host, username, password);,说明:如果使用POP3协议,只可以使用INBOX文件夹,但是使用IMAP协议,则可以使用其他的文件夹。,Java Mail核心类,7. Folder类 定义了获取(fetch)、备份(copy)、附加(append)及以删除(delete)信息等的方法。 在连接Store类后,就可以打开并获取Folder类中的消息。 Folder folder = store.getFolder(“INBOX“); folder.open(Folder.READ_ONLY); Message message = folder.getMessages(); 在使用Folder类读取完邮件信息后,需要及时关闭对文件夹存储的连接。 folder.close(Boolean boolean); boolean:用于指定是否通过清除已删除的消息来更新文件夹。,JSP动态图表,JFreeChart Java开源项目 是一款优秀的Java图表生成插件 提供了在Java Application、Servlet和JSP下生成各种图片格式的图表,包括柱形图、饼形图、线图、区域图、时序图和多轴图等 /jfreechart/index.html 将图中三个jar包 拷贝到工程: WEB-INFlib目录下,JSP动态图表,在工程的web.xml文件中配置如下内容: DisplayChart org.jfree.chart.servlet.DisplayChart DisplayChart /servlet/DisplayChart ,JSP动态图表,生成动态统计图表的基本步骤: (1)创建绘图数据集合; (2)创建JFreeChart实例; (3)自定义图表绘制属性,该步可选; (4)生成指定格式的图片,并返回图片名称; (5)组织图片浏览路径; (6)通过HTML中的标记显示图片。,JFreeChart的核心类,JSP报表,iText组件 能够快速产生PDF文件的Java类库 可以生成包含文本、表格、图形等内容的只读文档,而且可以将XML、HTML文件转化为PDF文件。 下载地址:/ 配置: 将itext-1.3.1.jar,iTextAsian.jar包放入项目目录下的WEB-INF/lib路径中,应用iText组件生成JSP报表(1),建立com.lowagie.text.Document对象的实例 public Document(); public Document(Rectangle pageSize); /定义页面的大小 public Document(Rectangle pageSize,int marginLeft,int marginRight,int marginTop,int marginBottom); /*定义页面的大小,参数marginLeft、marginRight、marginTop、marginBottom分别为左、右、上、下的页边距*/ Rectangle rectPageSize = new Rectangle(PageSize.A4); /定义A4页面大小 rectPageSize = rectPageSize.rotate(); /加上这句可以实现A4页面的横置 Document doc = new Document(rectPageSize,50,50,50,50);/其余4个参数设置了页面的4个边距,应用iText组件生成JSP报表(2),2设定文档属性 public boolean addTitle(String title) public boolean addSubject(String subject) public boolean addKeywords(String keywords) public boolean addAuthor(String author) public boolean addCreator(String creator) public boolean addProducer() public boolean addCreationDate() public boolean addHeader(String name, String content) 其中addHeader()对PDF文档无效,仅对HTML文档有效。,应用iText组件生成JSP报表(3),3创建书写器(Writer)对象 文档(document)对象建立好之后,还需要建立一个或多个书写器与对象相关联,通过书写器可以将具体的文档存盘成需要的格式,例如: com.lowagie.text.PDF.PDFWriter可以将文档存成PDF格式 com.lowagie.text.html.HTMLWriter可以将文档存成HTML格式。 4进行中文处理 iTextAsian.jar组件 下载后放入项目目录下的WEB-INF/lib路径中,应用iText组件生成JSP报表(4),5创建表格 iText组件中创建表格的类包括com.lowagie.text.Table和com.lowagie.text.PDF.PDFPTable两种。 比较简单的表格可以使用com.lowagie.text.Table类创建 创建复杂的表格,用到com.lowagie.text.PDF.PDFPTable类,应用iText组件生成JSP报表(5),(1)com.lowagie.text.Table类 com.lowagie.text.Table类的构造函数有3个: Table

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论