这个问题在这里已经有答案了:
设计模式基于web的应用程序[关闭](5个答案)11天前关门了。我正在开发一个动态web应用程序。我有一个jsp页面的视图。我需要一个gui控制器和一个应用程序控制器。应用程序控制器执行用例的逻辑,gui控制器例如向jsp发送错误消息或更改请求登录的用户的视图。我需要更多关于这个gui控制器的信息,例如,是servlet还是简单的java类?这个gui控制器如何向jsp页面发送消息?你能给我解释一下这个gui控制器是如何工作的吗?
jhdbpxl91#
首先,类似mvc的东西都是关于关注点分离的。您有不同的组件处理不同的事情,这有一些优点,如可维护性、可扩展性、可重用性、较少的代码重复等。您已经提到了一个gui控制器和一个应用程序控制器。这就是关注点的分离。现在有一个组件处理表示逻辑,还有一个组件处理应用程序逻辑。您正在询问gui控制器。根据应用程序的大小,您可以使用servlet、普通java类或struts或springmvc等web框架构建应用程序。实现响应请求的java类的标准是servlet,因此可以使用servlet编写gui控制器。您可以在这里找到一个用servlet实现mvc的小例子。其目的是处理从用户收到的请求,从请求中提取参数,将数据发送到实现用例的应用程序控制器,应用程序控制器返回结果,然后servlet将使用该结果为jsp页面构建数据,选择一个jsp页面执行,并对其进行控制以建立响应。为了向jsp发送数据,servlet将使用 RequestDispatcher 通常请求属性。您也可以用一个简单的java类创建gui控制器,但是您仍然需要一个servlet作为入口点,然后将控制权委托给java类来处理请求。事实上,各种web框架都是这样工作的:它们注册了一个dispatcherservlet,用于获取要处理的框架类的请求和委托。您可以用任何方式实现这个表示控制器,只需记住关于分离关注点的部分。比如 HttpServletRequest , HttpServletRequest , RequestDispatcher ,或jsp路径不应泄漏到应用程序控制器或更深入的模型类中,因为这不是它们应该关心的事情。
RequestDispatcher
HttpServletRequest
1条答案
按热度按时间jhdbpxl91#
首先,类似mvc的东西都是关于关注点分离的。您有不同的组件处理不同的事情,这有一些优点,如可维护性、可扩展性、可重用性、较少的代码重复等。
您已经提到了一个gui控制器和一个应用程序控制器。这就是关注点的分离。现在有一个组件处理表示逻辑,还有一个组件处理应用程序逻辑。
您正在询问gui控制器。根据应用程序的大小,您可以使用servlet、普通java类或struts或springmvc等web框架构建应用程序。
实现响应请求的java类的标准是servlet,因此可以使用servlet编写gui控制器。您可以在这里找到一个用servlet实现mvc的小例子。其目的是处理从用户收到的请求,从请求中提取参数,将数据发送到实现用例的应用程序控制器,应用程序控制器返回结果,然后servlet将使用该结果为jsp页面构建数据,选择一个jsp页面执行,并对其进行控制以建立响应。
为了向jsp发送数据,servlet将使用
RequestDispatcher
通常请求属性。您也可以用一个简单的java类创建gui控制器,但是您仍然需要一个servlet作为入口点,然后将控制权委托给java类来处理请求。事实上,各种web框架都是这样工作的:它们注册了一个dispatcherservlet,用于获取要处理的框架类的请求和委托。
您可以用任何方式实现这个表示控制器,只需记住关于分离关注点的部分。比如
HttpServletRequest
,HttpServletRequest
,RequestDispatcher
,或jsp路径不应泄漏到应用程序控制器或更深入的模型类中,因为这不是它们应该关心的事情。