我编写了我的第一个servlet(学术目的)并且我不清楚与HTML客户端进行接口的正确方法是什么。
如果客户要求的类型很多,比如"我想要一杯咖啡","我想要一个披萨"等,(实际上我认为我只需要登录和数据发送/请求)但是,servlet必须如何处理这些?考虑到servlet只有一个get / post方法。
A)一个servlet(serverAddr / myApp / myServlet),用一个参数检查收到的请求并调用正确的函数(带一个开关。听起来不错)。
B)每个请求都有特定用途的servlet,例如" doCoffee" (serverAddr / myApp / coffee)," doPizza" (serverAddr / myApp / pizza)等 在这种情况下,我有许多构成Web应用程序的servlet。
我希望已经解释了我的问题,谢谢。
答案 0 :(得分:0)
你是对的:两个解决方案(一个处理多个用例的HttpServlet
方法和与用例一样多的servlet)在一般方面都不是好的设计。
这就是为什么,因为很长一段时间,Java EE应用程序不直接使用他们自己的HttpServlet
实现,而是使用Java EE UI框架,这些框架允许在Web控制器中实现灵活的设计。
在后面,使用框架提供的doGet()
,但我们不需要担心它,因为它已经准备好使用了。他们的主要目标之一是处理所有样板,复杂和重复的代码,以允许开发人员灵活地设计他们的Web应用程序。
例如,JSF 1(不是最近的)允许使用JSF backingbean将JSP视图映射到几乎经典的Object Java,而不是仅使用单myBean.myMethod()
方法来处理我们需求的刚性servlet 。
在这个backingbean中,您可以像在经典java类中一样添加任何方法,并以Java经典方式从JSP中调用这些方法:{{1}}。
大多数Java EE UI框架(SpringMVC,GWT,Struts 2等)允许这样做。