zoukankan      html  css  js  c++  java
  • sitemesh2在tomcat和weblogic中同时使用的配置问题

    (一)拦截*.do,装饰器中匹配do

    tomcat 可行

    weblogic 不可行

    web.xml

    ~~~

    <filter>

    <filter-name>sitemesh</filter-name>

    <filter-class>

    com.opensymphony.module.sitemesh.filter.PageFilter

    </filter-class>

    </filter>

    <filter-mapping>

    <filter-name>sitemesh</filter-name>

    <url-pattern>*.do</url-pattern>

    </filter-mapping>

    ~~~

    decorators.xml

    ~~~

    <decorators defaultdir="/pages/_decorators">

    <excludes>

    </excludes>

    <decorator name="index" page="indexde.jsp">

    <pattern>/index.do*</pattern>

    </decorator>

    </decorators>

    ~~~

    (二)拦截forward *.jsp,装饰器中匹配jsp

    tomcat 可行

    weblogic 可行

    web.xml

    ~~~

    <filter>

    <filter-name>sitemesh</filter-name>

    <filter-class>

    com.opensymphony.module.sitemesh.filter.PageFilter

    </filter-class>

    </filter>

    <filter-mapping>

    <filter-name>sitemesh</filter-name>

    <url-pattern>*.jsp</url-pattern>

    <dispatcher>FORWARD</dispatcher>

    </filter-mapping>

    ~~~

    decorators.xml

    ~~~

    <decorators defaultdir="/pages/_decorators">

    <excludes>

    </excludes>

    <decorator name="index" page="indexde.jsp">

    <pattern>/pages/index*</pattern>

    </decorator>

    </decorators>

    ~~~

    (三)拦截*.do,装饰器中同时匹配do和jsp

    tomcat 可行

    weblogic 可行

    原因:

    摘自 http://markmail.org/message/gmurb6e5lnnivnw2#query:+page:1+mid:2z2pgcifcyi7ukag+state:result

    A request comes in to a servlet, that servlet forwards to

    a JSP page using RequestDispatcher.forward(). Now, in Tomcat, a call to

    request.getServletPath() before and after the call to chain.doFilter() returns

    the exact same thing, regardless of whether the target servlet executes a

    forward. But in WebLogic, the call to getServletPath() after chain.doFilter()

    returns the forwarded path, not the original path. So the path matching that

    works in Tomcat doesn't work in WL, and vice-versa.

    翻译:

    一个请求进入servlet,servlet又使用RequestDispatcher.forward()了一个jsp页面。

    在tomcat中,chain.doFilter() 前后使用request.getServletPath() 获得的信息是一致的。

    在weblogic中,chain.doFilter() 后使用request.getServletPath() 获得的是forward后的地址。

    web.xml

    ~~~

    <filter>

    <filter-name>sitemesh</filter-name>

    <filter-class>

    com.opensymphony.module.sitemesh.filter.PageFilter

    </filter-class>

    </filter>

    <filter-mapping>

    <filter-name>sitemesh</filter-name>

    <url-pattern>*.do</url-pattern>

    </filter-mapping>

    ~~~

    decorators.xml

    ~~~

    <decorators defaultdir="/pages/_decorators">

    <excludes>

    </excludes>

    <decorator name="index" page="indexde.jsp">

    <pattern>/pages/index*</pattern>

    <pattern>/index.do*</pattern>

    </decorator>

    </decorators>

    ~~~

  • 相关阅读:
    kali linux安装vm
    视频学习_css基础学习
    w3c_html_study_note_5.26
    备份apt目录节省下载时间
    校园网小记
    [原创汉化]linux前端神器 WebStorm8 汉化
    虚拟机备份转移后,网络启动异常,提示“SIOCSIFADDR: No such device”的解决方案
    python开发之virtualenv与virtualenvwrapper讲解
    Nginx负载均衡概述
    centos7安装python3 以及tab补全功能
  • 原文地址:https://www.cnblogs.com/afarmer/p/3818104.html
Copyright © 2011-2022 走看看