我是Web开发的新手,我只是想知道java servlet的最佳实践.每个servlet应该只执行一个操作,即用于登录的servlet,用于注册的servlet等,还是应该通过传递不同的参数来告诉servlet要执行哪个操作来组合类似的操作?
干杯
您永远不应该传递参数来告诉 servlet 执行不同的操作。您所做的只是将 2 个 servlet 合并为一个,这会变得更加难以管理。每个“动作”都需要一个 servlet。
要避免的一个例子是:
/App/Servlet1?action=edit
if (request.getParamater("action").equals("edit")) {
//update fields
} else if (request.getParamater("action").equals("view")) {
//just query
}
Run Code Online (Sandbox Code Playgroud)
当您想要重新设计任何东西时,这往往会导致更多问题。您将需要单独的 servlet,因为它正在解耦您的逻辑,以便您可以轻松地更改它,而不是耦合它不应该与之相关的各种错综复杂的代码。另外,请查看关注点分离。
修订/编辑:我现在要说这个(比原来的答案晚得多)......您可以保留“多个动作”的概念并将其放入单个 servlet(控制器)中。该控制器可以并且应该委托给各个动作处理程序。我认为这在关注点分离方面是一样的,并且比我原来的答案更清晰。换句话说,不要在 servlet 中实现任何东西,只将它用于路由。
在诸如 Struts 之类的框架中,只有一个 Servlet(尽管可能有多个实例在运行)。该 servlet 将处理对各种 URL 的请求,并将它们传递给相关的操作处理程序。
我最终只是编写额外的 servlet 来提供不同的内容类型,例如图像渲染 servlet。
| 归档时间: |
|
| 查看次数: |
5610 次 |
| 最近记录: |