【问题标题】:Which is best method for calling a required servlet哪个是调用所需 servlet 的最佳方法
【发布时间】:2012-10-04 05:47:03
【问题描述】:

我有一个桌面应用程序,客户端可以从中添加新用户,可以与其他用户聊天等...我现在有 2 个选项:

  1. 制作一个处理程序 servlet,它会收到 post 请求 根据请求,处理程序 servlet 将调用 required servlet(例如 loginServletchatServletaddUserServlet 等)
  2. 直接从客户端调用所需的 servlet,例如直接 为 chatloginaddUser 请求 chatServlet

记住我的客户端是一个桌面应用程序。哪种方法有利于实施和未来的增强。 谢谢

【问题讨论】:

  • 我认为您应该只使用 httpclient 调用 URL,并将不同的 servlet 映射到 web-inf.xml 文件中的不同 URL,就像普通 Web 应用程序所做的那样。
  • @Reddy 谢谢你让我的问题更具可读性。感谢编辑。
  • 您是否有一个 Web 应用程序,您将在其中部署此 servlet?否则,这个问题没有多大意义。
  • @Reddy 如果将来我想更新我的应用程序,在这种情况下我是否也应该更改客户端。我是新开发人员,这就是为什么我有点困惑。?
  • @Luiggi Mendoze .. 兄弟我有网络应用程序,我必须部署它..

标签: java servlets httpclient


【解决方案1】:

好吧,我认为您应该使用 Front Controller 模式来采用第一种方法。

它应该只包含一个SINGLE SERVLET,它为所有请求提供一个集中的入口点。这个servlet 会将所有请求委派到所需的servlet。

您只需执行以下操作即可在应用程序中应用前端控制器模式:

       <servlet>
       <servlet-name>////servlet name: FrontController</servlet-name>
       <servlet-class>////Fully qualified servlet name e.g: org.chat.controller.FrontController</servlet-class>
       </servlet>
      <servlet-mapping>
      <servlet-name>FrontController<servlet-name>
      <url-pattern>/*</url-pattern>
<servlet-mapping>

【讨论】:

  • 谢谢你兄弟展示的方法,但是......你能不能给我一些这种方法的优势......?这样我就可以在我的文档中证明我为什么选择这种方法。
  • 是的,使用 FrontController 设计模式背后的基本思想是减少重复代码、异常处理、可测试性。
  • 看,在您的场景中,它将帮助您减少重复代码,例如聊天会话开始和聊天会话在每个控制器中完成。您可能想编写自定义异常或您的 servlet 处理一些异常。异常处理代码将仅在 Frontcontroller 中编写,因此无需在每个控制器中编写。 Common 逻辑只写在前端控制器中,如会话管理、身份验证。因此它会减少代码行数并帮助您进行测试。您的 loginServlet、chatServlet... 将只有所需的逻辑。
  • 但是你不应该为这些事情使用 Servlet 过滤器吗?
【解决方案2】:

我无法从问题中清楚地理解您的问题。但我建议您从方法 2 开始并开始实施。
如果您遇到任何具体问题,请在此处发布。

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    相关资源
    最近更新 更多