基于tomcat的body重定向请求
我有一个 tomcat 7 应用程序,我可以从外部源获取请求。
他们中的大多数人这样称呼我的请求:
http://localhost:8080/MyWeb/exRequest
我构建MyWeb 应用程序中具有 URL 模式的 servlet。
但是,一个外部源必须发送如下请求:
并在正文中
<xml name="test" />
:我不想声明一个通用的servlel(如tomcat默认值),因为这意味着任何请求都需要通过我的servlet,我想更改ROOT的index.jsp以重定向到我的servlet。
这是最好的选择吗?
是否有一个选项可以创建默认 servlet,仅当主体中有特殊参数时才会调用该默认 servlet?
已编辑
请注意,我收到的请求是 localhost:8080 而不是 localhost:8080/MyWeb - 这是一般的 tomcat 而不是特定的网络应用程序
I have a tomcat 7 application which I can get requests from external sources.
Most of them call my request like this:
http://localhost:8080/MyWeb/exRequest
and I build servlet with URL pattern inside MyWeb app.
However, one external source must send the request like this:
and in the body:
<xml name="test" />
Since I don't want to declare a general servlel (like tomcat default) since it means that any request will need to go through my servlet, I thought to change index.jsp of ROOT to redirect to my servlet.
Is it the best option?
Is there an option to create a default servlet that will be invoked only if there is a special parameter in the body?
EDITED
Please note that I get the requests to localhost:8080 and not localhost:8080/MyWeb - it's general to tomcat and not to a specific web app
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您无法根据请求正文选择要调用的 servlet,但您可以在 web.xml 中将 servlet 设置为“欢迎文件”。
如果您想保留某些现有index.jsp 的“欢迎”功能,您的servlet 可以将正文中没有正确XML 的请求转发到位于WEB-INF 目录下的index.jsp 文件。
You can't choose a servlet to invoke based on the request body, but you can set a servlet as the "welcome-file" in your web.xml.
If you want to preserve the "welcome" function of some existing index.jsp, your servlet could forward requests without the correct XML in the body to an index.jsp file located under the WEB-INF directory.
不可以,但您可以创建一个
Filter
,并在请求满足特定条件时转发/重定向到特定的 servlet。如果使用 servlet 3.0,则使用
@WebFilter
进行映射,否则使用web.xml
和
+;
。您应该将其映射到默认 servlet 之前执行。No, but you can create a
Filter
and forward/redirect to a specific servlet whenever the request meets certain conditions.If using servlet 3.0 map it with
@WebFilter
, otherwise useweb.xml
and<filter>
+<filter-mapping>
. You should map it be executed before the default servlet.