资源预览内容
第1页 / 共52页
第2页 / 共52页
第3页 / 共52页
第4页 / 共52页
第5页 / 共52页
第6页 / 共52页
第7页 / 共52页
第8页 / 共52页
第9页 / 共52页
第10页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五课 日志、邮件、验证码,ITANY,回顾,自定义标签的概念和使用目的标签处理程序实现的步骤、标签类生命周期、标签描述文件定义标签文件的实现步骤、标签文件的常用指令及相关属性设置,本章目标,掌握日志工具log4j了解JavaMail了解验证码,第一部分,掌握日志工具log4j了解JavaMail了解验证码,什么是日志,日志:用来记录一些重要的操作信息有价值的日志数据能够帮助用户提前发现和避开灾难,并且找到事件发生的原因,public class Test public static void main(String args) Teacher teacher = new Teacher(); try teacher.setId(088); catch (IllegalArgumentException ex) System.out.println(ex.getMessage(); ,“土办法”:在控制台输出相关提示信息,Tomcat系统日志,在TOMCAT_HOME/conf下的server.xml文件中:参数说明:directory:日志存放目录,相对于TOMCAT_HOMEprefix、suffix:日志文件前缀、后缀pattern:日志格式,common、combine或自定义resolveHosts:是否获取主机名,Tomcat程序日志,在TOMCAT所使用的JDK的jrelib的目录下,有一个和日志记录相关的文件:logging.properties修改其中的handlers配置可设定日志记录方式:java.util.logging.FileHandler:文件记录java.util.logging.ConsoleHandler:控制台输出常用配置:pattern:文件名formatter:输出格式使用:在servlet中使用log方法记录缺点:不能区别级别,不能区分应用程序,log4j介绍,一个可重用的日志操作组件,由Apache提供的一个开源项目 可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程;可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。,log4j使用,首先在工程中加入log4j所使用的jar文件然后在CLASSPATH下创建log4j.properties文件根据需要对log4j.properties文件进行配置在程序中使用log4j提供的Logger类及其方法进行日志记录,log4j配置文件:Appender,输出目的地(Appender):org.apache.log4j.ConsoleAppender:控制台 org.apache.log4j.FileAppender:文件org.apache.log4j.DailyRollingFileAppender:每天产生一个日志文件org.apache.log4j.RollingFileAppender:文件大小到达指定尺寸的时候产生一个新的文件org.apache.log4j.WriterAppender:将日志信息以流格式发送到任意指定的地方,log4j配置文件:Layout,输出格式(Layout):org.apache.log4j.HTMLLayout:以HTML表格形式布局 org.apache.log4j.PatternLayout:可以灵活地自定义定布局模式, org.apache.log4j.SimpleLayout:包含日志信息级别和信息字符串的简单格式org.apache.log4j.TTCCLayout:包含日志产生的时间、线程、类别等等信息的较详细格式,log4j配置文件:Pattern,自定义格式(PatternLayout):%m:输出代码中指定的消息%p:输出优先级,即DEBUG,INFO,WARN,ERROR等 %r:输出自程序启动到输出该信息所耗费的毫秒数 %c:输出所属的类的全名 %t:输出产生该日志事件的线程名 %n:输出一个回车换行符%d:输出日志时间,可指定格式,比如:%dyyyy-MM-dd HH:mm:ss SSS%l:输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。,log4j配置文件:Level,输出级别(Level):分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALLlog4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG只有等于及高于设置级别的信息才会进行记录,log4j配置文件示例:控制台,# 把日志信息输出到控制台 #log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:ss %m%n# 设置优先级别、以及输出源 #log4j.rootLogger=debug, stdout,log4j配置文件示例:文件,# 把日志信息输出到文件:accp.log #log4j.appender.file=org.apache.log4j.FileAppenderlog4j.appender.file.File=$catalina.home/demo.loglog4j.appender.file.layout=org.apache.log4j.HTMLLayout# 设置优先级别、以及输出源 #log4j.rootLogger=debug, file,log4j配置文件示例:数据库,# 把日志信息输出到数据库 #log4j.appender.sql=org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.sql.Driver=oracle.jdbc.driver.OracleDriverlog4j.appender.sql.URL=jdbc:oracle:thin:10.10.80.70:1521:orcllog4j.appender.sql.User=testoklog4j.appender.sql.Password=salog4j.appender.sql.Sql=insert into log4j(time,level,message, class,thread) values(%ddd-M月 yy,%p,%m,%l,%t)# 设置优先级别、以及输出目标 #log4j.rootLogger=debug, sql,注意:数据库表自行创建,使用log4j:Logger,使用log4j中的Logger类静态方法getLogger获取日志对象,语法:Logger logger = Logger.getLogger(Class)使用Logger类的相应方法记录日志debuginfowarnerrorfatal,第二部分,掌握日志工具log4j了解JavaMail了解验证码,JavaMail 简介,JavaMail 功能、特点,抽象类的 集合,跨平台和跨协议,提供发送和接收邮件的功能,SMTP用于发送邮件,POP3 和 IMAP 用于接收邮件,用于通过网络或Internet发送和接收邮件的组件,JavaMail 工作原理,消息,用户发送,传输,Transport对象提交信息,网络介质,存储,文件夹,消息,收件人查看,消息存储在文件夹中,收件人接受消息,使用SMTP,使用POP3、IMAP,JavaMail API组件,JAF:JavaBeans Activation Framework,类结构,Message*,Store*,Session,Folder*,JavaMail API,Transport*,Session 类,Session 类是最高级别的类可以创建共享和非共享会话会话是final类,不能有子类存放支持特定协议的 Store 和 Transport 对象能够控制和加载类Session 对象具有用户配置属性,如主机名和用户名,Session类的使用,使用静态方法:getDefaultInstance(prop) 或 getInstance(prop) 得到会话对象;参数是java.util.Properties 类型Properties的设置:Properties prop = new Properties();prop.put(“mail.transport.protocol”, “smtp”); prop.put(“mail.smtp.host”, “smtp.itany.com”);prop.put(“mail.smtp.port”, “25”); Session se=Session.getInstance(prop);,Message 类,一个抽象类,其子类用于实现一个特定报文传输系统需要的具体功能包含标题和内容,如右图:,Message类的用法,JavaMail中包含了一个实现的子类:MimeMessage用法:Message msg=new MimeMessage(se)常用方法:setFrom()、setRecipient()、setRecipients()、setSubject()、setText()、setSentDate()用到的辅助类:InternetAddress、Message.RecipientType,Transport类,一个抽象类,JavaMail中使用了该类来完成邮件的发送,可以通过Session对象的方法获得该类对象,如: Transport trans =se.getTransport(“smtp”);也可以直接使用该类的静态方法发送邮件: Transport.send(msg);,身份验证,目前大多数邮件服务器都需要通过身份验证才可以发送邮件JavaMail通过Session.getInstance(Properties,Authenticator);方法获取带有身份验证信息的会话Authenticator验证方法:public PasswordAuthentication getPasswordAuthentication()属性文件中增加:prop.put(mail.smtp.auth, true);,示例:发送邮件,创建Properties对象,并设置相应属性值创建Authenticator对象,提供身份验证(可选)创建Session创建Message,并设置邮件相关信息:发送者、收件人、发送时间、标题、内容等使用Transport的send方法发送邮件,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号