Dorado7的Web服务是依托Spring MVC构建起来的。在web.xml的配置中我们可以找一个com.bstek.dorado.web.servlet.DoradoServlet的配置,com.bstek.dorado.web.servlet.DoradoServlet即是继承自org.springframework.web.servlet.DispatcherServlet的,因此我们可以直接借用因此而引入的SpringMVC特性。当然,由于被Dorado7作了简单的包装,使用方法与标准的SpringMVC会略有区别。
配置url-mapping
在web.xml中可以看到,默认的配置方式里doradoServlet只拦截了*.d、*,dpkg、/dorado/*三种URL,这三种都是Dorado7系统需要使用的。为了在其中加入我们自己的Web服务,最好再增加一个自己的url-mapping。例如我们在其中追加一个*.do,配置变为如下形式:
<servlet> <servlet-name>doradoServlet</servlet-name> <servlet-class>com.bstek.dorado.web.servlet.DoradoServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>doradoServlet</servlet-name> <url-pattern>*.d</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>doradoServlet</servlet-name> <url-pattern>*.dpkg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>doradoServlet</servlet-name> <url-pattern>/dorado/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>doradoServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
配置servlet-context.xml
WEB-INF/dorado-home/servlet-context.xml是Dorado7提供的一种Spring配置文件,专门用于配置与DoradoServlet相关的内容。这里,我们配置servlet-context.xml的目的是为了给*.do的请求指派一个处理器。这里说的处理器通常应该是一个org.springframework.web.servlet.mvc.AbstractController的实现类。配置的方式如下:
<bean parent="dorado.resolverRegister"> <property name="url" value="**/*.do" /> <property name="resolver"> <bean class="xxx.xxx.MyActionResolver"/> </property> </bean>
您可以可以根据实际需要定义多个resolverResigter来处理各种请求,例如:
<bean parent="dorado.resolverRegister"> <property name="url" value="/file-upload.do" /> <property name="resolver"> <bean class="xxx.xxx.FileUploadResolver"/> </property> </bean> <bean parent="dorado.resolverRegister"> <property name="url" value="/file-download.do" /> <property name="resolver"> <bean class="xxx.xxx.FileDownloadResolver"/> </property> </bean>