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>

    ~~~

  • 相关阅读:
    codeforces 1249D1/D2 Too Many Segments (贪心)
    codeforces 1244E Minimizing Difference (贪心)
    codeforces 1249C1 + 1249C2 (贪心)
    codeforces 1251D Salary Changing (二分+贪心)
    codeforces 1244C (思维 or 扩展欧几里得)
    P1040 加分二叉树(区间DP)
    POJ 1015 Jury Compromise (记录路径的背包问题)
    混合背包(单调队列优化多重背包)(模板)
    GAMES101系列笔记一 图形学概述与线性代数入门
    力扣514 自由之路
  • 原文地址:https://www.cnblogs.com/afarmer/p/3818104.html
Copyright © 2011-2022 走看看