waltzlhy 发表于 2015-8-10 11:46:11

sitemesh2在tomcat和weblogic中同时使用的配置问题

  (一)拦截*.do,装饰器中匹配do
  tomcat 可行
  weblogic 不可行
  web.xml
  ~~~
  
  sitemesh
  
  com.opensymphony.module.sitemesh.filter.PageFilter
  
  
  
  sitemesh
  *.do
  
  ~~~
  decorators.xml
  ~~~
  
  
  
  
  /index.do*
  
  
  ~~~
  (二)拦截forward *.jsp,装饰器中匹配jsp
  tomcat 可行
  weblogic 可行
  web.xml
  ~~~
  
  sitemesh
  
  com.opensymphony.module.sitemesh.filter.PageFilter
  
  
  
  sitemesh
  *.jsp
  FORWARD
  
  ~~~
  decorators.xml
  ~~~
  
  
  
  
  /pages/index*
  
  
  ~~~
  (三)拦截*.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
  ~~~
  
  sitemesh
  
  com.opensymphony.module.sitemesh.filter.PageFilter
  
  
  
  sitemesh
  *.do
  
  ~~~
  decorators.xml
  ~~~
  
  
  
  
  /pages/index*
  /index.do*
  
  
  ~~~
页: [1]
查看完整版本: sitemesh2在tomcat和weblogic中同时使用的配置问题