Servlet监听器的接口

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

成都创新互联成立于2013年,先为巴彦等服务建站,巴彦等地企业,进行企业商务咨询服务。为巴彦企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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

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

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

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

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

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

打开向导创建的SrvStar tListener.java,并录入下面粗体的代码:

 
 
 
  1. package bookstore.servlet;  
  2. …  
  3. import java.io.*;  
  4. import java.util.*;  
  5. import java.text.SimpleDateFormat;  
  6. public class SrvStartListener  
  7. extends HttpServlet implements ServletContextListener  
  8. {  
  9. public void contextInitialized(ServletContextEvent sce)  
  10. {  
  11. GregorianCalendar cal = new GregorianCalendar();  
  12. int year = cal.get(Calendar.YEAR);//得到当前年份  
  13. int month = cal.get(Calendar.MONTH)+1;//得到当前月份  
  14. File file = new File("D:\\serverLog\\log_"+year+"_"+month+".xls");  
  15. FileWriter fw = null;  
  16. try  
  17. {  
  18. //如果文件存在,日志追加到文件末尾,否则创建新的文件  
  19. fw = new FileWriter(file,true);  
  20. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  21. String starttime = sdf.format(new Date());  
  22. fw.write("于"+starttime+"启动Web容器\n");  
  23. } catch (IOException ex)  
  24. {  
  25. ex.printStackTrace();  
  26. } finally  
  27. {  
  28. try  
  29. {  
  30. if (fw != null)  
  31. {  
  32. fw.close();  
  33. }  
  34. } catch (IOException ex1)  
  35. {  
  36. ex1.printStackTrace();  
  37. }  
  38. }  
  39. }  
  40. …  

名称栏目:Servlet监听器的接口
网站网址:http://www.mswzjz.com/qtweb/news30/185330.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联