- 浏览: 255720 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 3984//发起请求、先写发送(out)、然后等待度(in) URL ... -
基于ssh的项目的单元测试
2012-08-01 13:55 978package com.csoft.ta.util; imp ... -
JBPM设计器乱码问题
2012-06-30 13:44 769修改eclipse安装跟目录下的eclipse.ini文件,在 ... -
项目中读取文件
2012-03-13 18:31 812import java.io.BufferedReader;i ... -
项目中配置log4j
2012-03-08 10:26 888<!--如果不定义webAppRootKey参数,那么w ... -
qq album
2012-01-05 23:02 1030此文章完全转自他人博客(用于个人学习记录) 这个功能的实现关 ... -
关于quartz 2.x 一些记录
2011-12-30 14:27 1195功能需要 审计(即对不同规则的定制的东西进行轮巡)如果每一个轮 ... -
JavaScript动态操作表格,添加,删除行、列及单元格
2011-12-27 16:11 799<html> <head> < ... -
jsp 导出excel(利用excel本身另存为html)
2011-12-27 16:06 4514<%@page contentType="ap ... -
jsp 导出excel
2011-11-21 16:09 894<%@page contentType="ap ... -
java mail 应用
2011-09-22 10:02 860以下全部copy from http://www.cnbl ... -
quartz 在 spring静态、动态配置
2011-09-20 14:55 1179项目要求动态改变配置时间,动态改变quartz的 cron表达 ... -
JMX简单示例
2011-09-02 16:40 901以下文章摘自网络仅供学习用 1.编写一个以MBean ... -
cron表达式
2011-08-01 16:59 832以下文章复制自他出: 一个Cron-表达式是一个由六至七个 ... -
不同数据库的数据库类型及对应的jdbc类型
2011-07-27 12:47 1205public static void main(String ... -
Dom4j的使用
2011-06-15 18:08 760Dom4j 使用简介 作 ... -
SVN update时候报错的解决办法。。Working copy not locked; this is probably a bug, please rep
2011-06-01 09:02 5141今天上午CVS服务器突然坏了。。改用svn,安装完插件,连到我 ... -
hibernate 延迟加载
2011-05-12 17:25 699延迟加载: 延迟加 ... -
hibernate 一级缓存和二级缓存
2011-05-12 17:09 889一级缓存 Hibernate框架一级缓存的特点: 1.它是hi ... -
读取Blob字段图片、并进行缩放放到页面上
2011-03-29 15:15 4167整个流程分为四步,连接oracle数据库 -> 读取bl ...
相关推荐
`ViewPager`是Android支持库中的一个控件,它允许用户左右或上下滑动来浏览多个页面,非常适合创建翻页效果。 要创建一个纵向滑动的页面,我们需要以下步骤: 1. **添加依赖**: 首先确保你的项目依赖了`Android ...
Java复杂聊天室是一个涵盖多个关键技术点的项目,其中包括自定义应用层协议的设计、客户端-服务器(CS)架构下的多线程编程以及实现多客户端登录与上下线提醒功能。以下是对这些知识点的详细解释: 1. **自定义应用层...
在Android开发中,动画效果是提升用户体验的重要手段之一。"Android抖动动画效果(上下抖和以角旋转)"这个主题主要关注如何实现物体在屏幕上进行上下抖动和以角度旋转这两种动态效果。抖动动画通常用于错误提示、...
用户可以通过安装这个.TTF文件将扁等线简体添加到他们的系统中,从而在各种应用程序中使用此字体。 在实际应用中,设计师可能会结合扁等线简体与其他设计元素,如色彩、图像和排版,来创造出引人注目的视觉效果。...
在IT行业中,实时和历史曲线绘制是数据...综上所述,实时和历史曲线绘制在C#中涉及了图形库的使用、数据处理、性能优化以及用户交互等多个方面。通过学习和实践,开发者可以构建出功能强大且直观的曲线图表应用程序。
本主题聚焦于利用HTML5来实现页面之间的上下切换效果,这种效果常见于移动应用中,能为用户提供流畅的导航体验。 首先,我们要理解HTML5的核心特性之一是离线存储能力,通过`Application Cache`或`Service Worker`...
用户需要提供数据点,选择合适的拟合模型,然后调用相应的函数来计算拟合参数。 除了Apache Commons Math,还有其他Java库如JAMA(Java Matrix Package)和EJML(Efficient Java Matrix Library)可以进行矩阵运算...
抽屉的样式可以根据需求进行定制,包括背景颜色、文字样式、分割线等。这些都可以通过设置XML属性或者在代码中动态修改来实现。 5. **优化与性能**: - 考虑到性能,抽屉视图中的数据应按需加载,避免一次性加载...
例如,设计一个水处理系统的管道布局或一个自动化生产线上的电气控制系统。 ### 固定版本特性与注意事项 #### 1. **2012版本特性** - 针对2012版本,可以关注该版本中新引入的功能,比如改进了的管道设计工具、...
- 需要计算并绘制坐标轴,这涉及到确定最大和最小值,以及刻度线和标签的分布。 - 可以使用SetWindowExtEx()和SetViewportExtEx()函数调整设备上下文的扩展和视口扩展,以实现坐标轴的缩放。 6. **性能优化**: ...
9. **误差分析**:为了评估拟合质量,可以计算拟合曲线与原始数据点之间的残差或使用某种误差度量,如均方根误差。 10. **适用场景**:三次样条曲线拟合常用于数据插值、信号平滑、曲线设计和动画生成等领域。在...
在Android应用开发中,"上下拉刷新"是一个常见的功能,特别是在列表或滚动视图中,用户可以下拉来获取更多数据,上拉则更新已有内容。这个"android上下拉刷新Demo"应该是一个示例项目,展示了如何在Android应用中...
这个效果常见于许多应用程序,如Google Maps、Gmail等,它允许用户从屏幕边缘滑动以显示一个可隐藏的侧边栏,通常用于放置导航菜单或其他功能选项。 抽屉效果的实现主要涉及以下几个关键知识点: 1. **...
这种数据线允许用户将USB接口的电脑连接到PLC的串行接口,实现数据传输。 "三菱USB转串口驱动"是确保这种连接正常工作的关键组件。这个驱动程序使得操作系统能够识别并正确处理USB转串口设备,使其在编程软件中表现...
在Android开发中,实现平滑滑动...总结来说,"android 上下平滑滑动翻页"涉及到了Android手势识别、动画制作、视图缓存、性能优化等多个关键知识点,通过掌握这些技术,开发者可以构建出更加生动、用户友好的应用程序。
1.根据用户选择的时间区间,显示最高价和最低价。 2.点击最高价或最低价的flags会显示出相应的时间。 3.动态改变X轴时间显示格式(%Y %Y-%m %m-%d),防止样式重叠在一起。 4. 动态改变Y轴的最大值最小值,防止K...
urtracker免费版(3.3.0.813 )基本上可以完成小型团队的需求,功能也很强大,但安装一个月后用户数不能多于5个的限制也很麻烦,因此稍微修改了一下URTracker2.dll文件,做到了用不过期也就没有用户数的限制了,直接...
在Photoshop中,曲线调整允许用户通过改变像素亮度级别的映射关系来改变图像的整体亮度、对比度和色彩平衡。曲线通常显示为图像直方图上方的一个图形界面,用户可以通过拖动曲线上的点来调整像素的亮度分布。 在...
标题“C# Winform图片剪切拼接终结版(多幅图片拼接、左右上下拼接)”表明这是一个针对C#开发者,特别是那些在Windows桌面应用开发领域工作的程序员的资源。描述中提到,该工具增加了去除剪切框的功能,并支持多种...
"HTML5手机专题页面触屏滑动上下翻页特效"就是其中的一个典型应用场景,它旨在提升用户在手机端浏览网页的体验,通过触屏手势实现流畅的上下翻页效果。 首先,HTML5的`<meta>`标签可以设置页面的视口(viewport),...