- 浏览: 259156 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (217)
- java 基础 (36)
- flex (1)
- structs 2.0 (5)
- oracle 学习过程 (20)
- j2ee (63)
- c/s java (0)
- javaScript (24)
- jdom (1)
- jquery (1)
- java模式 (1)
- Datebase common konwledge (3)
- JfreeChart (3)
- html (3)
- sql server (6)
- tomcat servlet (4)
- lucene (1)
- Linux (3)
- 常见注意 (6)
- hibernate (2)
- jsp页面 (3)
- effective Java (1)
- spring (2)
- Spark (1)
- json (0)
- JMS (1)
- 电脑故障 (2)
- mysql (1)
- JBPM (2)
- java 线程 (1)
- oracle优化 (1)
- 安全 (1)
- hadoop (0)
- 算法 (1)
- hbase (0)
最新评论
-
mfhappy:
你好,你这个导出的文件中如果有图片你怎么处理??
jsp 导出excel(利用excel本身另存为html) -
丹寺丁:
...
jquery 解析 java 后台的 json数据 -
xurichusheng:
不直接诶生成想要的对象,而是让客户端利用所有必要的参数 ...
重叠构造器、Builder模式 -
wen121221222:
感谢啊!困恼我一个下午的问题终于解决了
java.lang.NoClassDefFoundError: javax/mail/Authenticator异常 -
gaoyanglovejava:
不错。就是这么解决的。多谢
The project is not a myEclipse hibernate project
下面是搜集的一些listener方面的知识
简例一
监听用户上线与退出,显示在线用户
1、登陆页面 Login.jsp
<%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" %>
<%
session=request.getSession(false);
if(session!=null)session.invalidate();
%>
<html>
<head><title></title></head>
<body>
<form action="isOnline.jsp" method="post">
用户名:<input type="text" name="uName"/>
<input type="submit" value="上线">
</form>
</body>
</html>
2、控制页面(只是为了说明监听器问题,所以简单了点...) isOnline.jsp
<%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" %>
<html>
<head><title></title></head>
<body>
<%
session=request.getSession();
session.setAttribute("userName",request.getParameter("uName"));
response.sendRedirect("showOnline.jsp");
%>
</body>
</html>
3、显示页面 showOnline.jsp
<%@page pageEncoding="gb2312" contentType="text/html; charset=gb2312" import="java.util.ArrayList" %>
<html>
<head><title></title></head>
<body>
<%
ArrayList showList=(ArrayList)(getServletContext().getAttribute("list"));
out.print("在线人数 "+showList.size()+"<br>");
for(int i=0;i<showList.size();i++){
out.print(showList.get(i)+"在线"+"<br>");
}
%>
<br>
<a href="Login.jsp">退出</a>
</body>
</html>
4、配置页面 web.xml
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<listener>
<listener-class>org.xiosu.listener.onlineListener</listener-class>
</listener>
</web-app>
5、监听器 onlineListener.java
package org.xiosu.listener;
import java.util.ArrayList;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class onlineListener implements HttpSessionListener,
HttpSessionAttributeListener {
// 参数
ServletContext sc;
ArrayList list = new ArrayList();
// 新建一个session时触发此操作
public void sessionCreated(HttpSessionEvent se) {
sc=se.getSession().getServletContext();
System.out.println("新建一个session");
}
// 销毁一个session时触发此操作
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("销毁一个session");
if (!list.isEmpty()) {
list.remove((String) se.getSession().getAttribute("userName"));
sc.setAttribute("list", list);
}
}
// 在session中添加对象时触发此操作,在list中添加一个对象
public void attributeAdded(HttpSessionBindingEvent sbe) {
list.add((String) sbe.getValue());
sc.setAttribute("list", list);
}
// 修改、删除session中添加对象时触发此操作
public void attributeRemoved(HttpSessionBindingEvent arg0) {
}
public void attributeReplaced(HttpSessionBindingEvent arg0) {
}
}
说明:本例只为简单介绍监听器,并未进行安全方面设置。
监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样
就可以给在线人数加1。常用的监听接口有以下几个:
ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性。
ServletContextListener监听ServletContext。当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。
HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发session Created(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。
HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。
example:随服务器启动
<web-app>
com.tb.listener.CountStartListener
package com.tb.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
import com.tb.timertask.DoCountTask;
public class CountStartListener extends HttpServlet implements ServletContextListener
{
private static final long serialVersionUID = 1824920962239905170L;
public CountStartListener()
{
// TODO Auto-generated constructor stub
}
public void contextDestroyed(ServletContextEvent arg0)
{
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent arg0)
{
DoCountTask.dotask();
}
}
发表评论
-
远程调用servlet
2012-09-12 16:26 4003//发起请求、先写发送(out)、然后等待度(in) URL ... -
基于ssh的项目的单元测试
2012-08-01 13:55 989package com.csoft.ta.util; imp ... -
JBPM设计器乱码问题
2012-06-30 13:44 784修改eclipse安装跟目录下的eclipse.ini文件,在 ... -
项目中读取文件
2012-03-13 18:31 828import java.io.BufferedReader;i ... -
项目中配置log4j
2012-03-08 10:26 900<!--如果不定义webAppRootKey参数,那么w ... -
qq album
2012-01-05 23:02 1041此文章完全转自他人博客(用于个人学习记录) 这个功能的实现关 ... -
关于quartz 2.x 一些记录
2011-12-30 14:27 1210功能需要 审计(即对不同规则的定制的东西进行轮巡)如果每一个轮 ... -
JavaScript动态操作表格,添加,删除行、列及单元格
2011-12-27 16:11 815<html> <head> < ... -
jsp 导出excel(利用excel本身另存为html)
2011-12-27 16:06 4537<%@page contentType="ap ... -
jsp 导出excel
2011-11-21 16:09 910<%@page contentType="ap ... -
java mail 应用
2011-09-22 10:02 887以下全部copy from http://www.cnbl ... -
quartz 在 spring静态、动态配置
2011-09-20 14:55 1199项目要求动态改变配置时间,动态改变quartz的 cron表达 ... -
JMX简单示例
2011-09-02 16:40 914以下文章摘自网络仅供学习用 1.编写一个以MBean ... -
cron表达式
2011-08-01 16:59 848以下文章复制自他出: 一个Cron-表达式是一个由六至七个 ... -
不同数据库的数据库类型及对应的jdbc类型
2011-07-27 12:47 1223public static void main(String ... -
Dom4j的使用
2011-06-15 18:08 771Dom4j 使用简介 作 ... -
SVN update时候报错的解决办法。。Working copy not locked; this is probably a bug, please rep
2011-06-01 09:02 5153今天上午CVS服务器突然坏了。。改用svn,安装完插件,连到我 ... -
hibernate 延迟加载
2011-05-12 17:25 713延迟加载: 延迟加 ... -
hibernate 一级缓存和二级缓存
2011-05-12 17:09 905一级缓存 Hibernate框架一级缓存的特点: 1.它是hi ... -
读取Blob字段图片、并进行缩放放到页面上
2011-03-29 15:15 4191整个流程分为四步,连接oracle数据库 -> 读取bl ...
相关推荐
K线通常由一根代表开盘价和收盘价的矩形柱子(或“蜡烛”)和上下两个线段(“影线”)组成,分别表示当天的最高价和最低价。根据开盘价与收盘价的关系,矩形可以填充为不同颜色,比如收盘价高于开盘价则填充为绿色...
这些文件共同构成了整个程序的编译和运行环境,使得用户可以在MFC对话框中直观地比较和查看三次样条插值、贝塞尔曲线和平滑曲线的效果。 总的来说,这个程序是一个结合了数学理论与编程实践的优秀示例,它展示了...
在Android开发中,动画效果是提升用户体验的重要手段之一。"Android抖动动画效果(上下抖和以角旋转)"这个主题主要关注如何实现物体在屏幕上进行上下抖动和以角度旋转这两种动态效果。抖动动画通常用于错误提示、...
urtracker免费版(3.3.0.813 )基本上可以完成小型团队的需求,功能也很强大,但安装一个月后用户数不能多于5个的限制也很麻烦,因此稍微修改了一下URTracker2.dll文件,做到了用不过期也就没有用户数的限制了,直接...
本主题聚焦于利用HTML5来实现页面之间的上下切换效果,这种效果常见于移动应用中,能为用户提供流畅的导航体验。 首先,我们要理解HTML5的核心特性之一是离线存储能力,通过`Application Cache`或`Service Worker`...
给定的"基于传输线变压器的BALUN计算器"工具很可能是一个软件或电子表格,用于帮助用户根据具体需求计算出传输线的尺寸和参数。使用这类计算器,用户可以输入目标阻抗、工作频率、所需的带宽和可用的传输线类型等...
用户可以通过ArcGIS将此Shapefile数据导入,进行地图展示、编辑、分析和打印。例如,可以测量海岸线的长度,研究海岸线变化,或者结合其他数据进行海岸带资源评估和环境影响分析。 4. **地理分析**:利用中国海岸线...
在Android开发中,创建一个可左右滑动切换月份、上下滑动收缩的日历视图是一项常见的需求。这种功能常用于日程管理应用,为用户提供直观的日期选择方式。"Android日历可左右活动上下定位收缩"这个项目的核心在于实现...
通过这些数据,用户可以清楚地看到九段线的具体走向,分析其与周边海域的关系,以及进行各种地理空间分析。 了解如何正确处理和分析这些数据至关重要,因为它们涉及到国家的领土主张和海洋权益。在实际应用中,可能...
在C#编程中,绘制实时曲线并实现局部图像放大是一项重要的功能,常见于数据分析、监控系统和图形用户界面(GUI)应用中。本篇将详细阐述如何利用C#实现这一功能,包括基本原理、关键技术和具体步骤。 首先,我们要...
这种自定义不仅可以提升用户界面的美观度,还可以增强用户的使用体验,使他们更容易地理解和操作数据。 在提供的压缩包"ListViewWithLines"中,可能包含了实现这一功能的示例代码,包括XAML布局文件和相关的后台...
9. **误差分析**:为了评估拟合质量,可以计算拟合曲线与原始数据点之间的残差或使用某种误差度量,如均方根误差。 10. **适用场景**:三次样条曲线拟合常用于数据插值、信号平滑、曲线设计和动画生成等领域。在...
而思科的Console线驱动则与Cisco终端仿真程序(如Cisco TACACS+或SecureCRT)兼容,允许用户通过命令行界面(CLI)进行设备管理。 安装和配置Console线驱动的步骤通常包括以下几点: 1. 下载适合操作系统版本的...
在Android应用开发中,"上下拉刷新"是一个常见的功能,特别是在列表或滚动视图中,用户可以下拉来获取更多数据,上拉则更新已有内容。这个"android上下拉刷新Demo"应该是一个示例项目,展示了如何在Android应用中...
1.根据用户选择的时间区间,显示最高价和最低价。 2.点击最高价或最低价的flags会显示出相应的时间。 3.动态改变X轴时间显示格式(%Y %Y-%m %m-%d),防止样式重叠在一起。 4. 动态改变Y轴的最大值最小值,防止K...
这个效果常见于许多应用程序,如Google Maps、Gmail等,它允许用户从屏幕边缘滑动以显示一个可隐藏的侧边栏,通常用于放置导航菜单或其他功能选项。 抽屉效果的实现主要涉及以下几个关键知识点: 1. **...
在Photoshop中,曲线调整允许用户通过改变像素亮度级别的映射关系来改变图像的整体亮度、对比度和色彩平衡。曲线通常显示为图像直方图上方的一个图形界面,用户可以通过拖动曲线上的点来调整像素的亮度分布。 在...
它由开盘价、收盘价、最高价和最低价四个关键数据组成,形成四种不同类型的K线:阳线、阴线、十字星和一字线。C#软件通过解析这些数据,可以为用户提供直观的市场走势分析。 2. **图表绘制**: 在股票软件中,可视...
标题“C# Winform图片剪切拼接终结版(多幅图片拼接、左右上下拼接)”表明这是一个针对C#开发者,特别是那些在Windows桌面应用开发领域工作的程序员的资源。描述中提到,该工具增加了去除剪切框的功能,并支持多种...
"HTML5手机专题页面触屏滑动上下翻页特效"就是其中的一个典型应用场景,它旨在提升用户在手机端浏览网页的体验,通过触屏手势实现流畅的上下翻页效果。 首先,HTML5的`<meta>`标签可以设置页面的视口(viewport),...