我们有一个单片应用程序,其中有一个处理所有请求的dispatcher servlet。后来,我们采用web-fragment来提高应用程序的模块性。但是通过这种方法,我们有了多个dispatcher servlet。每个web片段一个。所以现在我们在web.xml(/*)中有了wf1-servlet(/wf1/*), wf2servlet(/wf1/*)和main-servlet,我们不能避免这一点,因为有很多urls不能被命名空间。
有没有办法排序servlet的执行,以便在最后选择main-servlet,因为这在/*上有效
发布于 2015-01-11 13:47:38
使用<url-pattern>标记将特定的url映射到特定的servlets:
<servlet>
<servlet-name>wf1servlet</servlet-name> //servlet name
<servlet-class>package.Wf1servlet</servlet-class> //servlet class
</servlet>
<servlet-mapping>
<servlet-name>wf1servlet</servlet-name> //servlet name
<url-pattern>/wf1/*</url-pattern> //how it should appear
</servlet-mapping>您还可以在servlet中转发一个请求,您可以将一个请求转发给另一个特定的请求,例如:。
URL url = new URL("http://otherserver:otherport/url");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
//set http method if required
connection.setReqeustMethod("POST");
//set request header if required
connection.setRequestProperty("header1", "value1");
//check status code
if(connection.getResponseCode() == 200){
InputStream is = connection.getInputStream();
//transfer is to the required output stream
} else {
//write error
}另外,我认为servlet的映射顺序是它们在web.xml文件、here和here中出现的顺序。您可以看到一些有用的信息
https://stackoverflow.com/questions/27884259
复制相似问题