我有一个单页面Web应用程序,看起来像使用普通Jsp / Servlet的桌面应用程序。在后端,我有一个servlet,其中传递了动作参数,以便在单个网页上进行各种操作。 90%的请求是ajax。当功能在单个Web页面上增长时,单个servlet下将存在更多操作。现在我的问题是
拥有单个servlet来管理很多操作的好设计?什么是更好的设计?
使用单个和多个servlet时,性能优势是什么?
servlet代码在增长的某个时刻是否会无法管理?
出于公司政策原因,我无法使用spring mvc ..
答案 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
-
除了笑话, 您可以使用单个servlet,并创建多个类来处理不同的场景,并使您的servlet类保持在100行代码下并具有良好的设计但这基本上就是自己写mvc
答案 2 :(得分:0)
REST是JB Nizet建议的正确方法。使用JAX-RS处理请求。如果您不想采用该路由,则可以使用单个servlet,但使用servlet就像控制器一样,将请求发送到不同的模块来处理它。只要您不将所有代码放在同一个类中,单个servlet就可以了。
如果您使用多个servlet,当您计划将其中一个servlet移动到另一个服务器时,设计会变得更好。但是对于多个servlet,UI(html或java脚本)需要处理到正确的servlet的路由
只有在一个servlet类中编写所有内容时代码才会无法管理...如果设计正确,它应该是可管理的。