第一范文网 - 专业文章范例文档资料分享平台

10-实验十 监听器编程实验

来源:用户分享 时间:2025/10/26 5:12:02 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验十 监听器编程实验

实验目的

熟悉监听器的主要功能 了解监听器的类型 掌握监听器的编程方法 掌握监听器的配置方法

实验内容

1、使用监听器技术,在前面实验的基础上,当每个用户登录系统主页面时,在页面左上角显示网站的访问次数,并显示当前在线用户列表,如图1所示。希望用户访问应用时,只有在关闭应用时,最新的访问次数才保存到数据库中,可以使用监听器监听ServletContext的启动和关闭。

图1 页面访问次数和在线用户列表

实验操作步骤

(1) 新建一个Web Project,工程名称为ExperiTenListener。将前面实现八中的

内容复制过来,实现用户登录后,显示当前在线的用户列表。在此基础上,添加监听器,统计网站的访问次数。

(2) 在数据库bookmgs下新建一个数据库表access_count,其中设置一个字段

count,用于存放网站的访问次数。

(3) 在src目录下新建一个包cs.javaee.listener,在此包下新建一个监听器类

ContextListener,此类中contextInitialized()方法可以监听到服务器的启动,此时,读取数据库表access_count中的count字段,contextDestroyed()方法可以在服务器关闭时将最新的访问次数更新到数据库中。ContextListener的代码如下:

package cs.javaee.listener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class ContextListener implements ServletContextListener { Connection cn=null; @Override public void contextDestroyed(ServletContextEvent arg0) { count=Integer.parseInt(ctx.getAttribute(\).toS } //update access_count set count='1'; //当服务器关闭时,把ServletContext中网站访问次数的属性写入数据库 ServletContext ctx=arg0.getServletContext(); String driver=ctx.getInitParameter(\); String url=ctx.getInitParameter(\); String user=ctx.getInitParameter(\); String password=ctx.getInitParameter(\); int count=0; if (ctx.getAttribute(\)!=null){ tring()); String sqlStr=\count=\\'\+count+\;// 修改数据库中count字段的数值 try { Class.forName(driver); cn=DriverManager.getConnection(url,user,password); Statement st=cn.createStatement(); int affectedRows=st.executeUpdate(sqlStr);//修改数据库中的记录 if (affectedRows==1){ @Override public void contextInitialized(ServletContextEvent arg0) { //当服务器启动时,从数据库中读取当前网站的访问次数 ServletContext ctx=arg0.getServletContext(); String driver=ctx.getInitParameter(\); String url=ctx.getInitParameter(\); String user=ctx.getInitParameter(\); String password=ctx.getInitParameter(\); String sqlStr=\; try { Class.forName(driver); cn=DriverManager.getConnection(url,user,password); Statement st=cn.createStatement(); ResultSet rs=st.executeQuery(sqlStr); if (rs.next()){ int ctx.setAttribute(\,count); ctx.setAttribute(\,0); System.out.println(\); } } System.out.println(\修改数据库数据成功!\); } st.close(); cn.close(); // TODO Auto-generated catch block e.printStackTrace(); // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { } catch (SQLException e) { count=Integer.parseInt(rs.getString(\).toString()); }else{ } } } } rs.close(); st.close(); cn.close(); // TODO Auto-generated catch block e.printStackTrace(); // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { } catch (SQLException e) {

(4) 配置监听器。在web.xml中添加监听器的配置,修改后的web.xml文件的

代码如下:

jdbc:mysql://localhost:3306/bookmgs user root ue> xmlns:xsi=\ xsi:schemaLocation=\ driver com.mysql.jdbc.Driver http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\> url password vip

搜索更多关于: 10-实验十 监听器编程实验 的文档
10-实验十 监听器编程实验.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3ghfy5zve286wqu5qu2u_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top