由于种种原因,部分内容被隐藏,请大家原谅。
如果有什么问题,可以与我联系,我会尽快解答。
如果你觉得这篇文章对你有用,请回贴,谢谢。
授课教师:牟勇
课时:100分钟
l 本章技能目标
n掌握log4j的用法,能够记录异常日志
n掌握sendRedirect与forward区别
l 本章重点
nlog4j的用法
nsendRedirect与forward的区别
l 本章难点
nsendRedirect与forward的区别
l 本章工作任务
u 使用log4j记录异常日志
u 从页面上添加新闻一级标题,并保存至数据库中
l 整章授课思路
n本章共有两个知识点:log4j的使用,response对象。
nlog4j的使用:首先说明什么是日志,有什么用,之后再说明在eclipse下的操作步骤。
n之后制作添加新闻一级标题,并保存至数据库中。
n最后,说明response对象的作用及它的两个方法的区别。
回顾: [5分钟]
innerHTML属性有什么用
简述即时错误提示特效的制作思路
预习检查: [5分钟]
在Eclipse中使用log4j的步骤是什么?
在JSP中,response.sendRedirect() 与 request. getRequestDispatcher().forward()区别是什么?
课程知识点讲解: 使用log4j记录日志信息[40分钟]
引入:出示案例AccpTeacherTest。并说明:以前当程序出错时,我们的错误信息都是输出在控制台,如果我们需要把错误信息保存下来,我们应该怎么办?
答案:可以使用log4j
什么是日志
日志:用来记录一些重要的操作信息
有价值的日志数据能够帮助用户提前发现和避开灾难,并且找到事件发生的原因。
如何使用log4j记录日志
第一步:在工程中加入log4j所使用的jar文件
v 项目 à 属性 :弹出项目的属性窗口
v Java构建路径à库à添加外部JAR:弹出选择JAR的窗口
v 通过选择JAR的窗口,找到log4j-1.2.x.jar,并确认
v 回到项目的属性窗口,点击确定
第二步:创建log4j.properties文件
v 选择欲使用log4j的项目à右键点击src à新建à其他 :弹出选择向导窗口
v 在选择向导窗口中,选择常规à 文件à 下一步:弹出新建文件的窗口
v 在新建文件窗口中,输入文件名log4j.properties à 完成:创建工作结束
第三步:使用log4j记录日志信息
import org.apache.log4j.Logger;
public class AccpTeacherLog4j {
public static void main(String[] args) {
AccpTeacher teacher = new AccpTeacher();
Logger logger = Logger.getLogger(AccpTeacherLog4j.class.getName());
try {
logger.debug("设置教员的编号。");
teacher.setId("088");
} catch (IllegalArgumentException ex) {
logger.info(ex.getMessage());
}
}
}
教员讲解重点代码(红色部分)
第四步:编写log4j.properties文件,配置日志信息
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
### 把日志信息输出到文件:accp.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=accp.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n
### 设置优先级别、以及输出源 ###
log4j.rootLogger=debug, stdout, file
教员应说明属性文件各参数的含义。
运行效果展示
控制台:
文件:
小结1
修改log4j.properties文件,设置优先级为info,在控制台以及accp.log文件中将会输出什么内容?
public class Test {
public static void main(String[] args) {
new Test().test();
}
public void test() {
try {
int[] arr = new int[3];
arr[3] = 2;
System.out.println("try");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("catch 1");
} catch (Exception e) {
System.out.println("catch 2");
} finally {
System.out.println("finally");
}
}
}
答案:将只输出使用Logger对象的info方法输出的日志信息
添加新闻一级标题[40分钟]
引入:log4j在实际项目中应用是非常广泛的,特别是对于那些处于测试运行状态的项目,我们不需要时刻监视运行状态,只要每天固定时间查看一下日志文件就可以了。下面我们来做一个项目:添加新闻一级标题。
新闻发布系统,要求如下:
从页面上添加新闻一级标题,并保存至数据库中
如果保存成功,返回成功页面
如果保存失败,返回失败页面
步骤:
第一步:创建页面
v 创建一级标题的发布页面(createLevelOneTitle.jsp)
v 创建发布成功页面(success.jsp)
v 创建发布失败页面(error.jsp)
第二步:创建数据库访问类
v 创建数据访问类FirstLeveTitleDbOpreation
v 建立方法 getNewId():用来获取新闻一级标题表中最大的ID,并对它加一,作为新的一级标题的ID
v 建立方法insertOneRecord(FirstLevelTitle fTitle):用来向数据库中插入一条新闻一级标题
演示创建的效果。
JSP内置对象response
response对象用于响应客户请求并向客户端输出信息
response 对象常用方法
void sendRedirect (String location):将请求重新定位到一个不同的URL
题目:在首页面(input.jsp)上输入用户名、密码,提交至input2.jsp进行处理
如果输入的用户名、密码都是sa,跳转至欢迎页面(welcome.jsp)
<%
request.setCharacterEncoding("GBK");
String name = request.getParameter("userName");
String pwd = request.getParameter("pwd");
if(name.equals("sa") && pwd.equals("sa"))
response.sendRedirect("welcome.jsp");
%>
教员讲解重点代码(红色部分),并说明它与request. getRequestDispatcher().forward()的区别(可更换代码,让学员看到结果)
本章总结 [10分钟]
在Eclipse中使用log4j分为几步,分别是什么?
从用户添写表单到JSP返回响应的过程是怎样的?
在JSP中,response.sendRedirect() 与 request. getRequestDispatcher().forward()区别是什么?
考核点
log4j的参数
response.sendRedirect() 与 request. getRequestDispatcher().forward()区别
扩展部分:
log4j的配置文件
学员问题汇总:
暂无
作业:
习题1:113页至114页选择题
习题2:114页第1,2,3题
习题3:预习第五章,试做课后的选择题最好的节约是珍惜时间,最大的浪费是虚度年华。