下午想在页面js中通过DWR调用后台逻辑处理些问题,发现web.xml中的配置
<servlet>
<display-name>DWR Servlet</display-name>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
的确是debug模式,dwr.xm中感觉也没问题,但就是输入
http://localhost:8080/SpecialServiceProject/dwr/ 测试 时出来不了 js的引用,后来才发现是被struts2拦截了,struts2的配置是
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样拦截当前应用下所有的请求了。 把filter-mapping 的 改为
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
就可以测试了。
另外,也可以在struts.xml中配置struts2不处理的路径/dwr/*
<constant name="struts.action.excludePattern" value="/dwr/*"/>
来完成。