web.xml中监听器配置
<!-- 监听器的配置:监听器配置完以后,应用系统在启动的时候就会开启这些监听器。
监听器的理解:监听器好比一个卫兵,卫兵一直站在那里等待长官的命令,当卫兵收到长官的命令以后,立即执行
之前已经协定好的事件。
java中的监听器,监听应用的事件,具体有什么事件,以及对每个事件的处理方式都在类中定义了,
所以,监听器不需要参数、不具有返回值只是一味的等待指令然后执行既定的名利,也就是执行相应的操作,
也就是说,监听器一旦写完,只是拿过来用就可以,没有方法,没有get set,没有参数,只使用其他什么都没有。
还是不大理解 以后再了解了解
-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
<!--使用spring的上下文加载监听器:可能的作用是:在web应用加载系统应用资源文件,也就是加载那些xml文件的时候,
会建立一些监听器。譬如监听xml文件内容的变化
-->
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
<!-- 实例化一个spring的关于请求的上下文的监听器 -->
</listener>
<listener>
<listener-class>org.hdht.commonweb.listener.MyServletContextListener</listener-class>
<!-- 实例化一个自定义的监听器。监听器主要代码
public class MyServletContextListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
}
public void contextInitialized(ServletContextEvent arg0) {
try {
// 初始化日志处理器
AppLogService.init();//初始化系统用到的变量,主要是静态变量。
System.out.println("INFO:数据初始化完毕");//djflag
} catch (Exception e) {
AppLogService.error("系统初始化错误!",e);
}
}
}
这是一个继承了服务器上下文监听器接口的监听器,这个监听器主要有两个必须实现的方法:
contextInitialized:当web服务器启动时执行的方法,该方法主要用来初始化系统的变量,多半是静态变量。
contextDestroyed:当web服务器关闭的时候调用的方法,主要是销毁一些内存变量,释放资源。
-->
</listener>
<filter>
<filter-name>headerFilter</filter-name>
<!-- 声明一个过滤器 名字叫:headerFilter 顾名思义是用来过滤文件头部的 -->
<filter-class>org.hdht.commonweb.filter.HeaderFilter</filter-class>
<!-- 过滤器的实例化类是自定义的过滤器:关键代码:
public class HeaderFilter implements Filter {
public void init(FilterConfig arg0) throws ServletException {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
response.setHeader("Expires", "-1");
chain.doFilter(req, res);
}
public void destroy() {
}
}
通过上边filter的配置:我们配置了一个自定义的过滤器,过滤器的名字是headerFilter,实例化类似自定义的类:HearderFilter,该过滤器的主要作用是对设置页面不采用缓存。
-->
</filter>
<filter-mapping>
<filter-name>headerFilter</filter-name>
<!-- 过滤器映射名称 -->
<url-pattern>*.jsp</url-pattern>
<!-- 过滤器映射文件:所有的jsp文件。 -->
</filter-mapping>
<!-- 通过上边的ffilter-mapping的配置: 我们将过滤器headerFilter映射到所有的jsp文件。
这样所有的jsp文件的头部就都会设置不适用缓存处理页面。这个过滤器主要用于经常和数据库有交互的页面中。-->
<!-- 权限过滤器:判断用户是否登录的过滤器 -->
<filter>
<filter-name>uimfilter</filter-name>
<!--声明一个过滤器的:uimfilter 主要的作用是检测用户是否登录 -->
<filter-class>org.hdht.commonweb.filter.PermissionFilter</filter-class>
<!-- uimfilter过滤器的实例化类 是自定义的过滤器类
java代码主要是对session进行判断,判断表示用户登录的session变量是否存在,如果不存在就重定向到登陆界面。
通过上边filter的配置:我们定义了一个名字叫做uimfilter的权限过滤器,这个过滤器的实例化类是自定义的java类,
主要对用户是否登录做出判断,并根据判断结果作相应的处理:继续操作还是重定向登录
-->
</filter>
<filter-mapping>
<filter-name>uimfilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<!-- 将权限过滤器映射给所有的jsp文件 -->
</filter-mapping>
<filter-mapping>
<filter-name>uimfilter</filter-name>
<url-pattern>/dwr/*</url-pattern>
<!-- 将权限过滤器映射给dwr包内的所有文件 -->
</filter-mapping>
<filter-mapping>
<filter-name>uimfilter</filter-name>
<url-pattern>*.do</url-pattern>
<!-- 将权限过滤器映射给所有的.do文件 -->
</filter-mapping>
<!-- 通过上边filter-mapping的配置:我们将uimfilter过滤器映射给所有的jsp文件,dwr包内的所有文件爱你以及.do文件
这样,当用户进入到jsp文件或者调用dwr或者有action的操作的时候,系统就会对用户是否登录进行判断。
-->
<!-- 防止出现 Session关闭异常的 过滤器 -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Strtus2.0 控制过滤器 -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/business/*</url-pattern>
<url-pattern>/common/*</url-pattern>
<url-pattern>/system/*</url-pattern>
<url-pattern>/login.jsp</url-pattern>
<url-pattern>/loginback.jsp</url-pattern>
<url-pattern>/main.jsp</url-pattern>
<url-pattern>/index.jsp</url-pattern>
<url-pattern>*.do</url-pattern>
</filter-mapping>
web.xml中监听器配置的更多相关文章
- Spring中,applicationContext.xml 配置文件在web.xml中的配置详解
一.首先写一下代码结构. 二.再看web.xml中的配置情况. <?xml version="1.0" encoding="UTF-8"?> < ...
- spring 和springmvc 在 web.xml中的配置
(1)问题:如何在Web项目中配置Spring的IoC容器? 答:如果需要在Web项目中使用Spring的IoC容器,可以在Web项目配置文件web.xml中做出如下配置: <!-- Sprin ...
- J2EE进阶(五)Spring在web.xml中的配置
J2EE进阶(五)Spring在web.xml中的配置 前言 在实际项目中spring的配置文件applicationcontext.xml是通过spring提供的加载机制自动加载到容器中.在web ...
- 使用Spring时web.xml中的配置
使用Spring时web.xml中的配置: <?xml version="1.0" encoding="UTF-8"?> <web-app x ...
- Struts在Web.xml中的配置及Struts1和Struts2的区别
(1)配置Struts的ActionServlet <servlet>元素来声明ActionServlet <servlet-name>元素:用来定义Servle ...
- SpringMVC(十六):如何使用编程方式替代/WEB-INF/web.xml中的配置信息
在构建springmvc+mybatis项目时,更常用的方式是采用web.xml来配置,而且一般情况下会在web.xml中使用ContextLoaderListener加载applicationCon ...
- web.xml中监听器如何顺序加载
最近用到在Tomcat服务器启动时自动加载数据到缓存,这就需要创建一个自定义的缓存监听器并实现ServletContextListener接口, 并且在此自定义监听器中需要用到Spring的依赖注入功 ...
- Jsp在Web.xml中的配置
以下列出web.xml经常使用的标签元素及这些标签元素的功能: 1.指定欢迎页面.比如: <welcome-file-list> <welcome-file-list> < ...
- servlet中用注解的方式读取web.xml中的配置信息
在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通 ...
随机推荐
- spring boot源码分析之SpringApplication
spring boot提供了sample程序,学习spring boot之前先跑一个最简单的示例: /* * Copyright 2012-2016 the original author or au ...
- slf4j log4j logback关系详解和相关用法
slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着"拿来主义"的态度,复制粘贴下配 ...
- [ES] 基础概念
Elasticsearch是基于Luence实现的一款搜索引擎,支持分布式和集群,并且搜索近实时,主要用于搜索和数据分析 索引 index 可以理解为数据库中的database,存储的是实际数据,因为 ...
- Oracle在线重定义DBMS_REDEFINITION 普通表—>分区表
实验环境:RHEL 6.4 + Oracle 11.2.0.3实验:在线重定义 普通表 为 分区表,包括主键对应的索引都改造为分区索引. 1,构造普通表t_objects conn test1/tes ...
- struts2学习笔记--总结获取servletAPI的几种方式
struts2的Action放弃了request,response等ServletAPI,使得在业务层上更加独立,在有时候使用struts2进行Web开发的时候,不可避免的要在action中使用ser ...
- 重温JSP学习笔记--与日期数字格式化有关的jstl标签库
上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...
- Handle类与线程
首先声明Handle对象和该类的handleMessage方法: Handler BarHandler = new Handler(){ @Override public void handleMes ...
- SQL SERVER 通用分页存储过程,两种用法任你选
写在前面 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和pageSize来完成分页,昨天前端和 ...
- Android四大组件之一“广播”
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...
- 我的angularjs源码学习之旅2——依赖注入
依赖注入起源于实现控制反转的典型框架Spring框架,用来削减计算机程序的耦合问题.简单来说,在定义方法的时候,方法所依赖的对象就被隐性的注入到该方法中,在方法中可以直接使用,而不需要在执行该函数的时 ...