简介
本指南关注确定Servlet。指南:Servlet 中提供了关于 Servlet 的更多指导信息。
确定 Servlets
Servlets 是与基于 Web 的客户端交互的服务器类。它们主要是从 Web 体系结构中的控制类中确定的(请参阅指南:分析类)。可以使用它们生成 Web 页面以用于演示用途,但通常这更适合于 JSP(请参阅指南:JavaServer Page(JSP))。它们还可用来与数据库交互(例如在以 Web 为中心的部署配置中),如概念:J2EE 部署配置所述。从 J2EE 1.4 开始,还可以将 Servlet 用于实施 Web Service,如 JAX-RPC
规范所定义。
但是,对于有重要业务逻辑的应用程序,或者需要 EJB 所提供特性的应用程序,多层部署配置(请参阅概念:J2EE 部署配置)将更适合。在该情况中,通常使用 servlets 来协调表示逻辑并提供到 EJB 提供的业务逻辑和数据的桥梁。
典型的 servlet 用法是作为前端控制器(Front
Controller)。前端控制器提供到应用程序的单一入口点,因此使安全性、应用程序状态和表示法统一并易于维护。前端控制器接受用户请求,处理请求并确定适当的表示组件以将它转发至该组件。 请参阅核心 J2EE 设计模式 -
前端控制器([ALU01])以获取详细信息。
如果您的设计包含大量具有相似控制代码的 JSP,请考虑引入一个 servlet 以在一个位置合并该逻辑。
对 Servlet 建模
在 RUP 中使用工作产品:设计类表示 Servlet,并将其建模为类。将用于处理 HTTP 请求的 Servlets 定型为
<<HTTPServlet>>。用于处理其他协议的 Servlet 的构造型为 <<GenericServlet>>。
可以认为每个 servlet 提供相同接口,单个操作服务各请求并提供标准客户端、会话和 servlet 环境信息。所以,对 servlet
建模的重点不在于定义接口操作,而是定义其职责以及它如何与其他设计元素(例如客户端、JSP、帮助函数类和 EJB 等)交互。
Web Service 端点
如上文所述,可以使用 servlets 实现 Web Service 并需要满足以下需求:
-
它必须有一个缺省的公共构造函数。
-
它必须实现服务端点接口所声明的所有方法,并且其业务方法必须是公共(public)的,而不是最终(final)或静态(static)的。
-
它必须是无状态的。
-
类必须是公共(public)的,但不是最终(final)或抽象(abstract)的。
|