2017-03-27 96 views
0

我是网络开发的新手,所以请忍受我的误解。春季控制器之间正常分工的练习

让我们下面的例子:

用户要执行这些操作:登录,退出,加入2号,写评论。

从我目前的知识,我将创建4控制器类,如:

loginController,logoutController, ArithmethicController, TextController.

在这些控制器我将向然后所有必需的映射,但: 像真的加入2号的事,写评论...必须由其他类如AdditionClass, WriteTextToSourceClass, UserAuthClass完成的权利?

此外,AdditionClass, WriteTextToSourceClass, UserAuthClass可能应该扩展HttpServlet。

我错过了什么,是我不知道Servlet这个东西在什么地方发挥作用,如果我已经在控制器之间划分了工作,那么它真正使用/负责的是什么,那么我的servlet在这里还有什么工作呢?

+1

他们不应扩大的servlet。控制器是“servlets”(实际上Spring MVC提供了servlet,并在入口点有控制器。) – Tobb

回答

1

Spring使用您在web.xml中定义的Dispatcher Servlet。感谢这一点,您可以专注于创建控制器。 @Controller意味着Spring会找到你的映射。 在你的只有4个方法的例子中,看起来有多于一个控制器的矫枉过正。然而,在Java中,当然最好是尽可能将任务分解为OO。您提到的实际工作通常在@Service类中进行,不会扩展Servlet。所以忘记创建自己的Servlet,并且只需使用Controllers,Services和Daos(对于CRUD操作,即模型)。

在web.xml:

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

这些教程真的帮了我上手:https://www.gontu.org/spring-framework-tutorials/

+0

谢谢你的回答:) – Oleg

+1

不客气。 –