【问题标题】:How to set a condition for different servlets in web.xml如何在 web.xml 中为不同的 servlet 设置条件
【发布时间】:2019-02-16 05:37:22
【问题描述】:

我是 Servlet 和 web.xml 内容的新手。我想在两个不同的 servlet 上设置条件/依赖关系。 考虑我有以下两个 servlet:

<servlet>
        <servlet-name>servlet1</servlet-name>
        <servlet-class>com.my.app.Servlet1</servlet-class>
        <load-on-startup>1</load-on-startup>
</servlet>

<servlet>
        <servlet-name>servlet2</servlet-name>
        <servlet-class>com.my.app.Servlet2</servlet-class>
        <load-on-startup>2</load-on-startup>
</servlet>

我只想在 servlet1 遇到错误或失败的情况下调用 servlet2。作为一个场景:假设 servlet1 是我的主要身份验证器,并且由于 servlet1 中的 URL 中缺少参数,用户登录失败。在这种情况下,我想尝试包含不同检查集的第二个身份验证器 servlet2...

我可以仅通过修改 web.xml 来实现吗? 如果不是,那么满足这一需求的替代解决方案是什么?

注意:我有 servlet1 的源代码,但没有 servlet2(仅构建 jar)...

提前致谢。

【问题讨论】:

  • 你会从servlet1转发。
  • 可能是一个选项。没有办法在 web.xml 中设置这样的逻辑?

标签: java http servlets web web.xml


【解决方案1】:

您可以使用 reuqestDispatcher 执行此操作,并将请求转发到另一个 servlet2,就像在 Servlet 1s doPost 方法中一样。

//Here URL is path to servlet 2
RequestDispatcher rd  = request.getRequestDispatcher(“url”);

rd.forward(request,response);

【讨论】:

  • web.xml 中没有选项检查 URL 中的某个参数并基于该参数调用相应的 servlet?
猜你喜欢
  • 2012-12-04
  • 2014-05-23
  • 2016-10-25
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多