2017-03-27 57 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

不客氣。 –