在開(kāi)發(fā)Web應(yīng)用時(shí),我們可能會(huì)遇到需要在某些情況下不攔截特定文件類(lèi)型的請(qǐng)求的需求。比如說(shuō),我們有一些HTML文件需要被直接訪問(wèn)而不是被攔截進(jìn)入servlet,或者我們有一些特定的HTML文件需要被特殊處理而不是按照servlet默認(rèn)的處理方式處理。
那么,怎么才能在CXF(Apache CXF是一個(gè)開(kāi)源的、由Apache軟件基金會(huì)管理的JAX-RS(RESTful Web Services)框架)中實(shí)現(xiàn)這種需要呢?
在CXF中,我們可以通過(guò)配置CXFServlet
的init-params來(lái)實(shí)現(xiàn)不攔截HTML請(qǐng)求的效果。下面是一個(gè)示例的CXFServlet配置:
<servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <init-param> <param-name>service-list-path</param-name> <param-value>/services</param-value> </init-param> <init-param> <param-name>redirects-list</param-name> <param-value>*.html</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
在這個(gè)配置中,我們通過(guò)添加一個(gè)redirects-list
的初始化參數(shù)來(lái)指定需要重定向(即不攔截)的文件類(lèi)型,這里我們指定需要重定向的文件類(lèi)型為所有.html文件。如果我們想要指定多個(gè)文件類(lèi)型,可以使用類(lèi)似于*.html;*.htm
的方式進(jìn)行設(shè)置。
通過(guò)這種方式配置CXFServlet,我們就可以實(shí)現(xiàn)不攔截HTML請(qǐng)求的效果。同時(shí),我們也可以通過(guò)類(lèi)似的方式進(jìn)行一些其他類(lèi)型的配置,例如指定不同的重定向路由、調(diào)整默認(rèn)的字符編碼等。