单个servlet处理单页Web应用程序设计

时间:2014-06-16 14:54:49

标签: java jsp java-ee servlets web-applications

我有一个单页面Web应用程序,看起来像使用普通Jsp / Servlet的桌面应用程序。在后端,我有一个servlet,其中传递了动作参数,以便在单个网页上进行各种操作。 90%的请求是ajax。当功能在单个Web页面上增长时,单个servlet下将存在更多操作。现在我的问题是

  • 拥有单个servlet来管理很多操作的好设计?什么是更好的设计?

  • 使用单个和多个servlet时,性能优势是什么?

  • servlet代码在增长的某个时刻是否会无法管理?

出于公司政策原因,我无法使用spring mvc ..

3 个答案:

答案 0 :(得分:2)

  

拥有单个servlet来管理很多操作的好设计?什么是更好的设计?

没有。基本上所有后端责任的单个类都不是好的设计。除非它只是作为行动的调度员,否则你将重新发明所有现有的MVC框架已经发明多年的轮子(Spring MVC等)。坦率地说,我会反对“公司政策”,并使用适当的工具:Spring MVC,或JAX-RS,或任何其他可用于轻松实现正确REST后端的现代框架。

  

单个与多个servlet有什么性能优势?

无。

  

servlet代码在增长的某个时刻是否会无法管理?

是。您最好遵循REST原则并为不同的操作分配不同的URL,而不是使用参数来传递操作。此外,所有操作都不应使用相同的HTTP方法。搜索或阅读信息应使用GET,而创建内容应使用POST,更新内容应使用PUT。

当然,每个URL使用一个servlet。

答案 1 :(得分:1)

你可以使用jsf

它是一个servlet

名为FacesServlet

-

除了笑话, 您可以使用单个servlet,并创建多个类来处理不同的场景,并使您的servlet类保持在100行代码下并具有良好的设计

但这基本上就是自己写mvc

答案 2 :(得分:0)

REST是JB Nizet建议的正确方法。使用JAX-RS处理请求。如果您不想采用该路由,则可以使用单个servlet,但使用servlet就像控制器一样,将请求发送到不同的模块来处理它。只要您不将所有代码放在同一个类中,单个servlet就可以了。

如果您使用多个servlet,当您计划将其中一个servlet移动到另一个服务器时,设计会变得更好。但是对于多个servlet,UI(html或java脚本)需要处理到正确的servlet的路由

只有在一个servlet类中编写所有内容时代码才会无法管理...如果设计正确,它应该是可管理的。