<!-- 监听器的配置:监听器配置完以后,应用系统在启动的时候就会开启这些监听器。

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

之前已经协定好的事件。

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中监听器配置的更多相关文章

  1. Spring中,applicationContext.xml 配置文件在web.xml中的配置详解

    一.首先写一下代码结构. 二.再看web.xml中的配置情况. <?xml version="1.0" encoding="UTF-8"?> < ...

  2. spring 和springmvc 在 web.xml中的配置

    (1)问题:如何在Web项目中配置Spring的IoC容器? 答:如果需要在Web项目中使用Spring的IoC容器,可以在Web项目配置文件web.xml中做出如下配置: <!-- Sprin ...

  3. J2EE进阶(五)Spring在web.xml中的配置

     J2EE进阶(五)Spring在web.xml中的配置 前言 在实际项目中spring的配置文件applicationcontext.xml是通过spring提供的加载机制自动加载到容器中.在web ...

  4. 使用Spring时web.xml中的配置

    使用Spring时web.xml中的配置: <?xml version="1.0" encoding="UTF-8"?> <web-app x ...

  5. Struts在Web.xml中的配置及Struts1和Struts2的区别

    (1)配置Struts的ActionServlet     <servlet>元素来声明ActionServlet    <servlet-name>元素:用来定义Servle ...

  6. SpringMVC(十六):如何使用编程方式替代/WEB-INF/web.xml中的配置信息

    在构建springmvc+mybatis项目时,更常用的方式是采用web.xml来配置,而且一般情况下会在web.xml中使用ContextLoaderListener加载applicationCon ...

  7. web.xml中监听器如何顺序加载

    最近用到在Tomcat服务器启动时自动加载数据到缓存,这就需要创建一个自定义的缓存监听器并实现ServletContextListener接口, 并且在此自定义监听器中需要用到Spring的依赖注入功 ...

  8. Jsp在Web.xml中的配置

    以下列出web.xml经常使用的标签元素及这些标签元素的功能: 1.指定欢迎页面.比如: <welcome-file-list> <welcome-file-list> < ...

  9. servlet中用注解的方式读取web.xml中的配置信息

    在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通 ...

随机推荐

  1. 高级javascript---模块化编程

    随着网站逐渐变成“互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂 网页越来越像桌面程序,需要一个团队分工协作.进度管理.单元测试等等......开发者不得不使用软 ...

  2. MySQL线程池

    MySQL线程池只在Percona,MariaDB,Oracle MySQL企业版中提供.Oracle MySQL社区版并不提供. 在传统方式下,MySQL线程调度方式有两种:每个连接一个线程(one ...

  3. PHP中MySQL操作

    本次使用的demo是MySQL的示例数据库employees,点击下载地址,注意在导入的时候,在employees.sql文件中,将source改成你当前的目录. PHP中的demo代码可以在ideo ...

  4. ZOJ Problem Set - 1350 The Drunk Jailer ac代码 memset

    这是一道很简单的题目,题目大概意思说下:就是有n个监狱(编号从1到n),第一次全部打开,第二次打开编号为2的倍数的,第三次打开编号为3的倍数的,以此类推...最后问你有几个监狱是打开的 题目中我使用了 ...

  5. 1Z0-053 争议题目解析470

    1Z0-053 争议题目解析470 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 470.Which NLS parameter can be used to change the ...

  6. 去哪儿搜索引擎QSearch设计与实现

    本次演讲主要介绍的是QSearch的具体设计和应用场景,并分别解答以下几个问题:QSearch与开源垂直软件Lucene的区别:具体业务的实现技巧.以及QSearch的具体设计:如何通过Partial ...

  7. 【原创】轻量级移动端即时通讯技术 MobileIMSDK 发布了

    申明:MobileIMSDK目前为个人原创开源工程,投入了大量的时间和精力,希望对需要的人有所帮助.如需与作者交流,见文章底部个人签名处,互相学习.Q群:215891622,欢迎共同志趣者学习和交流. ...

  8. 3.Code-First 约定(EF Code-First系列)

    前面,我们已经了解了Code-First利用领域类,怎么为我们创建数据库的简单示例.现在我们来学习一下Code-First约定吧. 什么是约定 约定说白了,就是基于一套规矩办事,这里就是基于你定义好的 ...

  9. Swift控制语句

    前言 Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环.还有基于特定条件选择执行不同代码分支的if.guard和switch语句,还有控制流程跳转到其他代码的br ...

  10. 微信扫码i支付~官方DEMO的坑

    返回目录 之前写过关于微信支付那些坑的文章(<微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)>,<微信JSApi支付~坑和如何填坑>),下面说一下微 ...