先看一下struts2 的web.xml文件:
<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>
在請求應用時,struts2將會截獲所有請求,對于servlet請求將不能夠正常相應,是struts2把servlet當成act
解決方法目前有四種:
方法1:統一在servlet后面加上.servlet(包括web.xml配置文件中和頁面上使用servlet的地方)
方法2:繼承StrutsPrepareAndExecuteF
public void init(FilterConfig filterConfig) throws
ServletException {
..............................
}
public void doFilter(ServletRequest request,
ServletResponse response,
IOException, ServletException {
if(url.contain("servlet")){
((HttpServletResponse) response).sendRedirect(redirectUrl);
}
super.doFilter(request, response, chain);
}
方法3:修改攔截頁面配置
原:
<filter>
/* </url-pattern>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.act
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
<filter-name>struts2</filter-name>
<url-pattern>/user/*</url-pattern>
servlet的請求路徑不必改變
方法4:在struts.xml文件中修改
……
名稱: ?4C.ESL | .↗Evon
口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
mail: 聯系我