JBuilder2005 Servlet开发之监听器

ゞ傷鈊メ尐瑞

ゞ傷鈊メ尐瑞

2016-02-19 13:44

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

Web应用服务器会产生各种事件,如Web容器启动事件、session过期事件、请求到达事件等等。我们已经在《JBuilder 2005实战jsp开发》中阐述了这些事件的接口,事件处理方法使程序对Web应用服务器的控制能力大为提高。

!-- frame contents -- !-- /frame contents --

在这一节里,我们监听Web容器启动关闭的事件,在事件发生时记录Web应用程序启动和关闭的系统日志,以便系统治理员通过这个日志查看Web应用程序的启动和关闭情况。日志以Excel文件格式保存在D:/serverLog的目录下。当登录成功后,用户可以将这份日志以附件的形式下载下来,下载Excel日志文件的功能将在本专题的最后一节实现。下面我们来创建这个记录系统日志的Servlet监听器。

1.启动创建Servlet监听器的向导。

通过File->New...->Web->双击Listener Servlet图标启动创建Servlet监听器的向导,如下图所示:

图 9 指定监听器的名字

这一步和创建标准Servlet类似,我们指定监听器的类名为:SrvStartListener,包名为bookstore.servlet,按Next到下一步。

2.指定监听器实现的事件接口。

图 10 选择监听器需要实现的事件接口

因为Web容器的启动和关闭事件是ServletContextListener接口定义的,所以我们选择这个接口,按Finish创建这个监听器。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

打开向导创建的SrvStartListener.Java,并录入下面粗体的代码:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  代码清单 6 SrvStartListener.java
  
  1. package bookstore.servlet;
  2. …
  3. import java.io.*;
  4. import java.util.*;
  5. import java.text.SimpleDateFormat;

  6.
  7. public class SrvStartListener
  8. extends HttpServlet implements ServletContextListener
  9. {
  10.
  11.  public void contextInitialized(ServletContextEvent sce)
  12.  {
  13.   GregorianCalendar cal = new GregorianCalendar();
  14.   int year = cal.get(Calendar.YEAR);//得到当前年份
  15.   int month = cal.get(Calendar.MONTH)+1;//得到当前月份
  16.   File file = new File("D:serverLoglog_"+year+"_"+month+".xls");
  17.   FileWriter fw = null;
  18.   try
  19.   {

  20.    //假如文件存在,日志追加到文件末尾,否则创建新的文件
  21.    fw = new FileWriter(file,true);
  22.    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  23.    String starttime = sdf.format(new Date());
  24.    fw.write("于"+starttime+"启动Web容器");
  25.   } catch (IOException ex)
  26.   {
  27.    ex.printStackTrace();
  28.   } finally
  29.   {
  30.    try
  31.    {
  32.   if (fw != null)
  33.   {
  34.    fw.close();
  35.   }
  36.    } catch (IOException ex1)
  37.    {
  38.   ex1.printStackTrace();
  39.    }
  40.   }

  41.  }
  42.  …
  43. }

   contextInitialized()方法在Web容器初始化时被调用,在该方法中,我们向D:serverlog.xls中写入一行日志;而contextDestroyed()方法在Web容器关闭前被调用,限于篇幅我们只列出contextInitialized()的代码,完整的代码请查看本书所附光盘中的程序。
  
   打开web.XML,可以看到这个监听器的部署描述信息,它向Web应用服务器注册一个监听器,如下所示:
  
   代码清单 7 关于SrvStartListener监听器的部署描述信息
  
  2. <web-app>
  3.  …
  4.  <listener>
  5.   <listener-class>bookstore.servlet.SrvStartListener</listener-class>
  6.  </listener>

  7.  …
  8. </web-app>

   值得注重的是,部署描述信息并没有说明这个监听器是何种类型的监听器,Web应用服务器将通过这个类所实现的事件接口即可知道监听器的类型。进入讨论组讨论。

展开更多 50%)
分享

猜你喜欢

JBuilder2005 Servlet开发之监听器

编程语言 网络编程
JBuilder2005 Servlet开发之监听器

JBuilder2005 Servlet开发之自启动

编程语言 网络编程
JBuilder2005 Servlet开发之自启动

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JBuilder2005 Servlet开发之过滤器

编程语言 网络编程
JBuilder2005 Servlet开发之过滤器

JBuilder2005开发Web应用程序

Java JAVA基础
JBuilder2005开发Web应用程序

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JBuilder2005 Struts深度体验之升级

编程语言 网络编程
JBuilder2005 Struts深度体验之升级

JBuilder2005实现重构之杂项重构

编程语言 网络编程
JBuilder2005实现重构之杂项重构

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

体验windows 7"有时无声胜有声"秘籍

体验windows 7"有时无声胜有声"秘籍

JAVASCRIPT加密解密终级指南

JAVASCRIPT加密解密终级指南
下拉加载更多内容 ↓