`
accpxudajian
  • 浏览: 452366 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web.xml配置详解之监听器

    博客分类:
  • Web
阅读更多
<!-- 监听器的配置:监听器配置完以后,应用系统在启动的时候就会开启这些监听器。

    监听器的理解:监听器好比一个卫兵,卫兵一直站在那里等待长官的命令,当卫兵收到长官的命令以后,立即执行

    之前已经协定好的事件。

    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配置详解

    web.xml配置详解、过滤器配置、监听器配置

    我收集的servlet中事件监听器机制we吧xml配置详解

    我收集的servlet中事件、监听器机制、web.xml配置详解

    关于JSP配置文件web.xml加载顺序详解

    1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将转换为键值对,并...

    web配置文件详解

    部署描述符实际上是一个XML文件,包含了很多描述servlet/JSP应用的各个方面的元素,如servlet注册、servlet映射以及监听器注册。部署描述符从下面的XML头开始

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 ...

    Spring中文帮助文档

    3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用...

    Spring API

    3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用...

    Spring 2.0 开发参考手册

    2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性...

    spring chm文档

    2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 ...

    Struts2属性文件详解

    该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现自己的配置管理器,开发者则可以实现一个实现...

    Spring.3.x企业应用开发实战(完整版).part2

    12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 使用注解配置 12.2.7 事务处理 12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis 12.3.1 配置SqlMapClient 12.3.2 在Spring配置myBatis ...

    Spring3.x企业应用开发实战(完整版) part1

    12.2.4 添加Hibernate事件监听器 12.2.5 使用原生Hibernate API 12.2.6 使用注解配置 12.2.7 事务处理 12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis 12.3.1 配置SqlMapClient 12.3.2 在Spring配置myBatis ...

    看透springMvc源代码分析与实践

    8.2.2 创建Spring MVC的xml配置文件85 8.2.3 创建Controller和view86 8.3 关联spring源代码87 8.4 小结89 第9章 创建Spring MVC之器90 9.1 整体结构介绍90 9.2 HttpServletBean93 9.3 FrameworkServlet95 ...

    疯狂Android讲义.part2

    3.2.6 匿名内部类作为事件监听器类 154 3.2.7 直接绑定到标签 155 3.3 基于回调的事件处理 156 3.3.1 回调机制与监听机制 156 3.3.2 基于回调的事件传播 158 3.3.3 重写onTouchEvent方法响应 触摸屏事件 160 3.4 ...

    疯狂Android讲义.part1

    3.2.6 匿名内部类作为事件监听器类 154 3.2.7 直接绑定到标签 155 3.3 基于回调的事件处理 156 3.3.1 回调机制与监听机制 156 3.3.2 基于回调的事件传播 158 3.3.3 重写onTouchEvent方法响应 触摸屏事件 160 3.4 ...

    spring boot 实践学习案例,与其它组件整合

    - Spring Boot 基础知识,包括SpringBoot起步、配置详解、aop、filter、拦截器、监听、启动器、全局异常处理、外部Tomcat启动、HTTPS、监控 等。 - springboot-data - Spring Boot 数据库操作,包括SpringJDBC、...

    疯狂Android讲义源码

     3.2.6 匿名内部类作为事件监听器类 154  3.2.7 直接绑定到标签 155  3.3 基于回调的事件处理 156  3.3.1 回调机制与监听机制 156  3.3.2 基于回调的事件传播 158  3.3.3 重写onTouchEvent方法响应  触摸屏...

Global site tag (gtag.js) - Google Analytics