基于tomcat的body重定向请求

发布于 2024-11-18 09:31:18 字数 688 浏览 3 评论 0原文

我有一个 tomcat 7 应用程序,我可以从外部源获取请求。

他们中的大多数人这样称呼我的请求:

http://localhost:8080/MyWeb/exRequest

我构建MyWeb 应用程序中具有 URL 模式的 servlet。

但是,一个外部源必须发送如下请求:

http://localhost:8080/

并在正文中

<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:

http://localhost:8080/

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情场扛把子 2024-11-25 09:31:18

您无法根据请求正文选择要调用的 servlet,但您可以在 web.xml 中将 servlet 设置为“欢迎文件”。

<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 文件。

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.

<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>

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.

东风软 2024-11-25 09:31:18

不可以,但您可以创建一个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 use web.xml and <filter> + <filter-mapping>. You should map it be executed before the default servlet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文