- 浏览: 139839 次
文章分类
- 全部博客 (149)
- Java (41)
- 设计模式 (23)
- php (2)
- C++ (2)
- Linux (6)
- C (1)
- JavaEE (27)
- javascript (2)
- uplodify (1)
- Mybatis (2)
- Maven (4)
- Lucene (3)
- commons (1)
- Spring (7)
- SQL (3)
- mahout (1)
- MySQL (2)
- extjs4.2.1 (2)
- ubuntu (1)
- hadoop (1)
- hibernate (1)
- Spring JPA (2)
- JPA 2.0 (1)
- express (1)
- redis (2)
- angularjs (1)
- git (1)
- Python (1)
- logging (2)
最新评论
-
xlaohe1:
controller返回的是一个POJO对象,然后用@Resp ...
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
TRAMP_ZZY:
能帮到你,我也很高兴。
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
jobzjc:
第一段有帮到我。如果是非对象,Object方式传递的时候,第一 ...
Spring MVC 4.X ResponseBody 日期类型Json 处理 -
TRAMP_ZZY:
dingran 写道为什么,我怎么就没找到System > ...
Ubuntu 12.04 设置 IBus 开机启动 -
dingran:
为什么,我怎么就没找到System >> Pref ...
Ubuntu 12.04 设置 IBus 开机启动
1. Filter 使程序可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chain”。
Filter 会在ServletContext 初始化之后,被调用 init()方法初始化。doFilter()会在每次请求被拦截时调用。
Filter destroy() 方法由容器在销毁过滤器实例之前调用:。
2. Listener 是基于观察者模式设计的,Listener 的设计对开发 Servlet 应用程序提供了一种快捷的手段,能够方便的从另一个纵向维度控制程序和数据。目前 Servlet 中提供了 5 种两类事件的观察者接口,它们分别是:4 个 EventListeners 类型的,ServletContextAttributeListener、ServletRequestAttributeListener、ServletRequestListener、HttpSessionAttributeListener 和 2 个 LifecycleListeners 类型的,ServletContextListener、HttpSessionListener。
统计在线人数的实例
3. 解决浏览器关闭时,不调用sessionDestroyed() 方法的方案
essionDestroyed方法在以下两种情况下会调用:
A.session过期。
B.调用session.invalidate()方法。
因此可以在浏览器中监听浏览器的关闭事件,在关闭前,让服务器发送请求,调用某方法 使当前session 过期。
Filter 会在ServletContext 初始化之后,被调用 init()方法初始化。doFilter()会在每次请求被拦截时调用。
Filter destroy() 方法由容器在销毁过滤器实例之前调用:。
package cn.mybatis.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; /** * Servlet Filter implementation class LoginFilter */ public class LoginFilter implements Filter { private FilterConfig filterConfig; /** * Default constructor. */ public LoginFilter() { // TODO Auto-generated constructor stub } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { this.filterConfig = fConfig; System.out.println("init methid getFilterConfig"); } /** * @see Filter#destroy() */ public void destroy() { System.out.println("destroy method"); } /** * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("doFilter method"); chain.doFilter(request, response); } }
2. Listener 是基于观察者模式设计的,Listener 的设计对开发 Servlet 应用程序提供了一种快捷的手段,能够方便的从另一个纵向维度控制程序和数据。目前 Servlet 中提供了 5 种两类事件的观察者接口,它们分别是:4 个 EventListeners 类型的,ServletContextAttributeListener、ServletRequestAttributeListener、ServletRequestListener、HttpSessionAttributeListener 和 2 个 LifecycleListeners 类型的,ServletContextListener、HttpSessionListener。
统计在线人数的实例
package cn.mybatis.servlet; import javax.servlet.ServletContextAttributeEvent; import javax.servlet.ServletContextAttributeListener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; /** * Application Lifecycle Listener implementation class OnlineUserListener * */ @WebListener public class OnlineUserListener implements HttpSessionListener, ServletContextListener, ServletContextAttributeListener { private long onlineUserCount = 0; /** * Default constructor. */ public OnlineUserListener() { // TODO Auto-generated constructor stub } /** * @see ServletContextListener#contextInitialized(ServletContextEvent) */ public void contextInitialized(ServletContextEvent arg0) { System.out.println("contextInitialized"); } /** * @see ServletContextAttributeListener#attributeAdded(ServletContextAttributeEvent) */ public void attributeAdded(ServletContextAttributeEvent arg0) { System.out.println("attributeAdded"); } /** * @see HttpSessionListener#sessionCreated(HttpSessionEvent) */ public void sessionCreated(HttpSessionEvent arg0) { this.onlineUserCount ++; toUpadteCount(arg0); System.out.println("sessionCreated"); } /** * @see ServletContextAttributeListener#attributeReplaced(ServletContextAttributeEvent) */ public void attributeReplaced(ServletContextAttributeEvent arg0) { System.out.println("attributeReplaced"); } /** * @see ServletContextAttributeListener#attributeRemoved(ServletContextAttributeEvent) */ public void attributeRemoved(ServletContextAttributeEvent arg0) { // TODO Auto-generated method stub } /** * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent) */ public void sessionDestroyed(HttpSessionEvent arg0) { this.onlineUserCount --; toUpadteCount(arg0); System.out.println("sessionDestroyed"); } /** * @see ServletContextListener#contextDestroyed(ServletContextEvent) */ public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } private void toUpadteCount(HttpSessionEvent httpSessionEvent) { httpSessionEvent.getSession().getServletContext().setAttribute("onlineUserCount", onlineUserCount); //httpSessionEvent.getSession().setAttribute("onlineUserCount", onlineUserCount); } }
3. 解决浏览器关闭时,不调用sessionDestroyed() 方法的方案
essionDestroyed方法在以下两种情况下会调用:
A.session过期。
B.调用session.invalidate()方法。
因此可以在浏览器中监听浏览器的关闭事件,在关闭前,让服务器发送请求,调用某方法 使当前session 过期。
发表评论
-
ServletContainerInitializer 初始化器
2016-08-24 14:29 5101概述 为了实现不通过web ... -
Tomcat 7.X 配置https
2014-11-10 11:47 490http://tomcat.apache.org/t ... -
Spring Data JPA 实例
2014-06-30 01:08 1914[url][/url] 1. Sping Data JPA 创 ... -
Spring 4.0.3+Hibernate4.3.5+Maven 配置文件
2014-06-21 09:43 2296<?xml version="1.0&qu ... -
Servlet 3.0 文件上传新特性
2014-02-15 21:55 507Servlet 3.0 实现了文件上传的功能,通过注解的方式指 ... -
ServletContext 与ServletConfig剖析
2014-02-15 20:44 6411. ServletContext 是一个全局的储存信息的空间 ... -
JavaMail Spring Mail支持
2014-02-15 15:54 7811. 普通的JavaMail 发送和接受邮件 public ... -
Jdbc 数据库连接池简易实现和JdbcUtils
2014-01-20 16:42 703public class MyDataSource { ... -
Java反射将Jdbc查询结果封装为对象
2014-01-19 10:24 1278public class ORMTest { pu ... -
Spring JdbcTemplate CRUD 操作
2014-01-11 12:12 931/** * Project Name:cjxy ... -
JavaEE 下载文件中文乱码兼容多浏览器
2013-12-11 11:02 502public static String encodeF ... -
Spring 3.2.* MVC通过Ajax获取JSON数据报406错误
2013-09-12 12:13 628Spring 3.2.* MVC通过Ajax获取JSON数据报 ... -
Spring SqlQuery 使用
2013-09-11 17:52 689/** * Project Name:webblog ... -
JavaEE pager-taglib 分页插件(2)
2013-08-12 17:56 433/** * Project Name:TestPag ... -
JavaEE pager-taglib 分页插件(1)
2013-08-12 16:47 1126pg:pager 这个标签用来 ... -
Web 安全与 过滤器
2013-06-03 16:51 7621. Servlet 安全的四大要 ... -
JSP学习笔记二
2013-06-03 15:36 7691. JSP 标准动作获取 Jav ... -
JSP学习笔记一
2013-05-24 16:26 7831. JSP 最终还是会变成一个完整的Servlet 在W ... -
Servlet学习笔记(二)
2013-05-23 17:30 6981. Servlet 的初始化参数 配置: < ... -
Servlet学习笔记(一)
2013-05-18 12:10 7811. MIME 类型是服务器对浏览器请求做出的反应类型。( ...
相关推荐
Servlet、Filter 和 Listener 是 JavaEE 中三种重要的组件,它们在 Web 开发中扮演着重要的角色。Servlet 负责处理客户端的请求,Filter 负责过滤和拦截 Web 资源,而 Listener 负责监听Servlet 容器中的事件。
11.1 Web应用的事件模型 11.2 Web应用的过滤器 11.3 小 结 11.1.1 事件与监听器接口 11.1.2 监听环境事件 11.1.3 监听请求事件 11.1.4 监听会话事件 11.1.5 事件监听器的注册
10. **Filter和Listener**:在JavaEE中,Filter用于拦截和处理HTTP请求,而Listener监听特定的事件,如session创建或销毁。 11. **部署描述符**:如web.xml和ejb-jar.xml,它们定义了应用的配置信息,包括组件的...
11. **Filter和Listener**:在JavaEE中,Filter和Listener是用于扩展Web应用程序功能的关键组件。Filter可以拦截请求和响应,而Listener可以监听特定的事件,如会话创建或销毁。 学习JavaEE程序开发不仅需要掌握...
通过分析这个"javaEE源代码servlet框架",你可以学习到如何编写和配置Servlet,以及它们如何与XML配置文件、Filter和Listener一起工作,这对于深入理解JavaEE应用开发至关重要。此外,实践项目中的源代码将帮助你更...
11. **Filter和Listener**:它们是JavaEE中增强应用功能的关键工具。Filter可以拦截和处理请求或响应,Listener则监听特定的事件,如session创建或销毁。 12. **Spring框架**:虽然不是JavaEE标准的一部分,但...
JavaEE(Java Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级Web应用程序的框架标准。...通过学习和分析源码,开发者可以更好地适应企业级开发环境,解决实际项目中的问题。
9. **Filter和Listener**:在web.xml中配置Filter和Listener可以扩展JavaEE应用的功能。Filter可以拦截请求,进行预处理或后处理,而Listener则可以监听特定事件,如session的创建和销毁。 10. **RESTful API**:...
6. **Filter和Listener**:Filter用于拦截和处理请求,Listener监听应用中的特定事件,两者都增强了应用的功能和灵活性。 7. **部署描述符(Deployment Descriptor)**:如web.xml,定义了应用的配置信息,如...
11. **Filter 和 Listener**:在JavaEE中,Filter用于拦截和处理Servlet请求和响应,而Listener则监听特定的Web或Servlet事件。 12. **MVC(Model-View-Controller)**架构模式:虽然JavaEE本身不强制使用特定的MVC...
JavaEE综合练习项目,涉及:html、css、js、Jquery、bootstrap、layui、layer、ajax、mysql、tomcat、servlet、filter、listener、jsp和公有云服务器。
7. **部署配置**:项目可能使用了Web.xml文件来配置应用服务器,如Tomcat或WildFly,定义Servlet、Filter和Listener等。 此外,图书馆系统还可能涉及到其他特性,如数据验证、事务管理、日志记录、错误处理等。使用...
它增强了Servlet的生命周期管理,提供了过滤器(Filter)和监听器(Listener)的更多功能,并支持动态部署。Servlet API允许开发者处理HTTP请求,实现服务器端逻辑。 2. **JSP 2.1**: JavaServer Pages(JSP)2.1...
5. **Filter和Listener**:学习者可能会接触Web应用的过滤器和监听器,了解它们如何增强应用的功能和控制流程。 6. **部署和测试**:实验可能包含将应用部署到应用服务器(如Tomcat或WildFly),以及编写和执行单元...
JavaEE的核心在于其提供的一系列技术和API(Application Programming Interface),这些技术和API使得开发者可以轻松地构建复杂的企业级应用。 #### 二、JavaEE关键技术点 ##### 1. XHTML (Extensible HyperText ...
JavaEE信息管理后台是一个基于JSP(JavaServer Pages)和Servlet技术开发的Web应用程序,它采用了经典的三层架构模式,即表现层、业务逻辑层和数据访问层,来实现高效、可维护的信息管理系统。这个项目是Java初学者...
JavaEE是企业级应用开发的重要框架,主要用于构建分布式、组件化的Web应用程序。在第五章的学习中,我们将...通过分析和实践这些代码,你将更深入地理解JavaEE的运行机制,并能够构建出更高效、更健壮的企业级应用。
10. **Filter和Listener**:它们是JavaEE中的重要辅助组件,Filter用于在请求到达目标资源前进行拦截处理,Listener则用于监听特定的事件,如会话创建、销毁等。 这些基础知识构成了JavaEE开发的基石,掌握它们能...
5. **Filter和Listener**:这两个组件是JavaEE的高级特性,用于拦截请求和监听特定事件。Filter可以用来进行数据过滤、登录验证等,Listener则可以监听session、request等对象的生命周期事件。 6. **数据库连接和...
8. **Filter与Listener**:在JavaEE中,过滤器(Filter)和监听器(Listener)是增强Web应用功能的重要工具。Filter可以用来拦截请求和响应,实现如登录验证、GZIP压缩等功能;Listener则可以监听特定事件,如...