<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
    <servlet>
   <servlet-name>Image</servlet-name>
    <servlet-class>zhou.Image</servlet-class>
  </servlet>  <servlet-mapping>
    <servlet-name>Image</servlet-name>
    <url-pattern>/Image</url-pattern>
  </servlet-mapping>
  
  <filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>  
</web-app>我在web.xml文件中同时配置的filter和servlet,我的项目中有一个Image(这是一个servlet),但是我访问Image时,
提示找不到对应的action.我觉得Image是被filter给拦截了,再到对应的struts.xml文件中搜索Image,那肯定是找不到的。我纠结了很长时间,是不是那个<url-pattern>/*</url-pattern>的问题!

解决方案 »

  1.   

    "我纠结了很长时间,是不是那个<url-pattern>/*</url-pattern>的问题!"
    是的
    你可以换成<url-pattern>/*.action</url-pattern>
      

  2.   

    先谢了!刚试了,好像没什么作用!
    struts.action.extension=action,,
    这个常量需要改变一下吗?
      

  3.   

    你访问的路径是zhou.Image吗?
     这样的话,
    <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>这里,你就不能用/*了,要改成*.action
    这样,你访问Servlet的时候,struts2就不会给你栏截了
      

  4.   

    2010-10-8 19:33:20 org.apache.catalina.startup.ContextConfig applicationWebConfig
    严重: Parse error in application web.xml file at jndi:/localhost/fileupload/WEB-INF/web.xml
    java.lang.IllegalArgumentException: Invalid <url-pattern> /*.action in filter mapping
    at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2808)
    at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2834)
    at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1143)这是启动tomcat是的异常!
      

  5.   


    <filter-name>struts2</filter-name>
      <url-pattern>/*.action</url-pattern>你是像这样写的吗?如果是,那就错了,把/去掉,写*.action