java - 一个 servlet 应该执行多少个 Action ?

标签 java servlets

我是 Web 开发的新手,只是想知道 Java servlet 的最佳实践。每个 servlet 是否应该只执行一个操作,即一个用于登录的 servlet、一个用于注册的 servlet 等,或者我是否应该通过传递不同的参数来告诉 servlet 执行哪个操作来组合类似的操作?

干杯

最佳答案

你不应该传递参数来告诉 servlet 做不同的 Action 。您所做的就是将 2 个 servlet 合并为一个,这会变得更难管理。每个“操作”都需要一个 servlet。

要避免的一个例子是:

/App/Servlet1?action=edit

if (request.getParamater("action").equals("edit")) {
//update fields

} else if (request.getParamater("action").equals("view")) {
//just query
}

当您想要重新设计任何东西时,这往往会导致更多问题。您将希望拥有单独的 servlet,因为它解耦了您的逻辑,以便您可以轻松地更改它,而不是将它不应该与之相关的各种错综复杂的代码耦合起来。另外,查看 Separation of Concerns .

修订/编辑: 我现在要说这个(原始答案要晚很多)...您可以保留“多个操作”概念并将其放入单个 servlet( Controller )中。该 Controller 可以并且应该委托(delegate)给各个操作处理程序。我认为这在关注点分离方面是一样的,并且比我原来的答案更清晰。换句话说,不要在 servlet 中实现任何东西,仅将其用于路由。

关于java - 一个 servlet 应该执行多少个 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1340895/

相关文章:

java - 如何关闭当前浏览器标签?

java - Apache HttpClient 中的 httponly cookie 支持

java - 向现有方法添加附加功能

java - 为什么我应该避免在 servlet 中使用 InheritableThreadLocal?

java - JBoss 6 中的异步处理 ("Comet")

java - 软键盘切断了我的 EditText/TextInputEditText 控件的底部

java - Serenity...如何获取 Webdriver?

java - 在Java中使用正则表达式匹配两个替代词或两个词

java - java中过滤器中的服务方法由谁来进行滚动?

java - 破译JSP中的对象数组