在ssh專案中使用servlet
雖然很多人說用了SSH還要servlet做什麼,但是需要在SSH專案中使用servlet的時候卻找不到解決方法。第一次整servlet到SSH專案上遇到了好多坑,花了兩天才解決。
當我們在頁面發出請求時,struts2將會攔截所有請求,對於servlet請求將不能夠正常響應,報錯資訊為:HTTP Status 404 - There is no Action mapped for namespace / and action name xxServlet.
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
之前我試過把/*改成*.do,/strut/* ,但專案之前的頁面都無法顯示了。我們可以將原來的servlet的<url-pattern>給servlet加上一個字尾
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/RegisterServlet.servlet</url-pattern>
</servlet-mapping>
這樣servlet就可以避開struts2的攔截了,然後我們在servlet中生成init()方法,
public void init() throws ServletException {
context = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
findUsersService = (IFindUsersService) context.getBean("findUsersService");
}
這樣就可以獲取spring的代理了。