appfuse实例中的web.xml学习笔记之过滤器

来源:互联网 发布:iphone8值得买吗 知乎 编辑:程序博客网 时间:2024/05/16 14:51

    <!-- Define the default CSS Theme -->

<!-- 导航栏有两种,一种是衡着的,一种竖着的 simplicity是衡着的,andreas01是竖着! -->
    <context-param>
        <param-name>csstheme</param-name>
        <param-value>simplicity</param-value>
    </context-param>
    <!-- Define the basename for a resource bundle for I18N -->
 <!-- jstl中的fmt是关于国际化的内容 -->
    <context-param>
        <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
        <param-value>ApplicationResources</param-value>
    </context-param>

其运用如下:

1 加入standard.jar和jstl.jar文件到/WEB-INF/lib里面

2 配置web.xml文件,加入如下内容:
<context-param>
   <param-name>javax.servlet.jsp.jstl.fmt.localizationContext </param-name>
   <param-value>messages</param-value>
</context-param>

3 编写国际化文件messages_zh_CN.txt并放之于/WEB-INF/classes里面,内容如下:
test = 测试一下看看

4 将该properties文件进行编码,命令如下,在jdk的安装目录bin里面有native2ascii.exe命令:
native2ascii.exe messages_zh_CN.txt messages_zh_CN.properties

5 编写jsp文件test.jsp,内容如下:
<%@ page contentType="text/html;charset=GB2312"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head><title>测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
</head>
<body>
<fmt:message key="test" />
</body>
</html>

6 运行服务器,并且于浏览器查看test.jsp页面


    <!-- Fallback locale if no bundles found for browser's preferred locale -->
    <!-- Force a single locale using param-name 'javax.servlet.jsp.jstl.fmt.locale' -->

<!-- jstl的配置 -->
    <context-param>
        <param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
        <param-value>en</param-value>
    </context-param>
    <!-- Context Configuration locations for Spring XML files -->

<!-- spring导入的bean的xml文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:/applicationContext-resources.xml
            classpath:/applicationContext-dao.xml
            classpath:/applicationContext-service.xml
            classpath*:/applicationContext.xml
            /WEB-INF/applicationContext*.xml
            /WEB-INF/xfire-servlet.xml  //web service和spring相结合的配置文件
            /WEB-INF/security.xml  //

AppFuse 使用 Acegi 进行安全管理。Acegi 的配置信息位于 web/WEB-INF/classes/security.xml。事实上,Acegi 是被集成到 Spring 当中的,因此这个文件是 Spring 的配置文件格式。在 web/WEB-INF/web.xml 中,该文件被指定在应用启动前会被加载:

引用文件:

http://hi.baidu.com/limeng1028/blog/item/ae549916f0938752f3de32df.html
        </param-value>
    </context-param>
//oscache是缓存机制的应用
    <filter>
        <filter-name>cacheFilter</filter-name>
        <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
    </filter>
    appfuse中使用Clickstream来跟踪用户的页面操作。它通过监听器来开始一次会话跟踪过程。 用户的每一条点击信息是通过一个servlet filter来捕捉的。当用户的session结束后把整个跟踪 记录保存在一个文件里或打印输出。可以发现用户是不是一个“人”。并且进行过滤(可以发现 252中机器人)。可以通过jsp或servlet显示用户的当前的点击信息。 先在web.xml中定义了filter和listener.

    <filter>
        <filter-name>clickstreamFilter</filter-name>
        <filter-class>com.opensymphony.clickstream.ClickstreamFilter</filter-class>
    </filter>
    编码过滤器,其中,encoding参数为设定转换成什么编码,如果中文,可以设成:GBK,forceEncoding参数为:强制转换
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    DisplayTag是一个非常好用的表格显示标签,用于数据表格的显示,排序,导出等功能。
    <filter>
        <filter-name>exportFilter</filter-name>
        <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
    </filter>
    ehcache也是一种缓存机制,其中gzipFilter可以压缩respone,可以将请求获得的数据压缩后发送到客房端。
    <filter>
        <filter-name>gzipFilter</filter-name>
        <filter-class>net.sf.ehcache.constructs.web.filter.GzipFilter</filter-class>
    </filter>
    <!--<filter>
        <filter-name>lazyLoadingFilter</filter-name>它是一个Servlet2.3过滤器,用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。目的是为了实现"Open Session in View"的模式。

        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter>-->
    <!-- Use "org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter" if you're using JPA -->
    <filter>
        <filter-name>localeFilter</filter-name>
        <filter-class>org.appfuse.webapp.filter.LocaleFilter</filter-class>
    </filter>
    UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Resin,Orion,Tomcat等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页
    对应的配置文件为:urlrewrite.xml
    <filter>
        <filter-name>rewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        <init-param>
            <param-name>logLevel</param-name>
            <param-value>log4j</param-value>
        </init-param>
    </filter>
    acegi安全机制的应用
    <filter>
        <filter-name>securityFilter</filter-name>
        <filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
        <init-param>
            <param-name>targetClass</param-name>
            <param-value>org.acegisecurity.util.FilterChainProxy</param-value>
        </init-param>
    </filter>
    Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大
量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。
它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,
使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板
的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。尽管它是由java语言来实现的,但它能与其他Web应用很好地集成。

    <filter>
        <filter-name>sitemesh</filter-name>
        <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
    </filter>
    <filter>
        <filter-name>staticFilter</filter-name>
        <filter-class>org.appfuse.webapp.filter.StaticFilter</filter-class>
        <init-param>
            <param-name>includes</param-name>
            <param-value>/scripts/dojo/*,/dwr/*</param-value>
        </init-param>
    </filter>
    以下两个是struts和spring相结合的配置。
    <filter>
        <filter-name>struts-cleanup</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
    </filter>
    <filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

 

原创粉丝点击