基于tomcat正文重定向请求
我有一个tomcat 7应用程序,我可以从外部获取请求。
他们大多数都是这样呼叫我的请求的:
HTTP://本地主机:8080 / MyWeb即可/ exRequest
并在MyWeb应用程序中使用URL模式构建servlet。
但是,一个外部来源必须像这样发送请求:
HTTP://本地主机:8080 /
并在体内:
<xml name="test" />
由于我不想声明一个普通的servlel(像tomcat默认),因为它意味着任何请求都需要通过我的servlet,所以我想将ROOT的index.jsp改为重定向到我的servlet。
这是最好的选择吗?
是否有一个选项可以创建一个默认的servlet,只有在主体中有一个特殊的参数时才会被调用?
EDITED
请注意,我得到的请求localhost:8080而不是本地主机:8080 / MyWeb - 这是一般的tomcat,而不是一个特定的Web应用程序
你不能根据请求体选择一个servlet来调用,但你可以在你的web.xml中设置一个servlet作为“welcome-file”。
<servlet>
<servlet-name>index</servlet-name>
<servlet-class>com.y.MyWelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>
如果您想保留一些现有的index.jsp的“欢迎”功能,你的servlet可以不用在体内的正确XML到位于WEB-INF目录下的index.jsp文件转发请求。
不,但您可以创建一个Filter
并在请求满足特定条件时转发/重定向到特定的小服务程序。
如果使用servlet 3.0将其与@WebFilter
映射,则使用web.xml
和<filter>
+ <filter-mapping>
。 你应该映射它在默认的servlet之前执行。