您應該使用原始Java Servlet或使用Spring MVC(或任何其他框架)構建Web應用程序的原因是什麼?原始Servlet與Spring MVC
當你應該避免使用Spring MVC時,是否有例外,使用Raw Servlets做這件事有什麼好處?
您應該使用原始Java Servlet或使用Spring MVC(或任何其他框架)構建Web應用程序的原因是什麼?原始Servlet與Spring MVC
當你應該避免使用Spring MVC時,是否有例外,使用Raw Servlets做這件事有什麼好處?
如果你正在構建一個非常快速和骯髒的演示,你以後無意擴展,那麼spring可能會導致很多額外的配置問題(如果你以前做過,不是真的,但我總是最終以這樣或那樣的方式與之鬥爭),所以這可能是考慮使用普通的舊servlet的時候了。一般來說,除了超級快速和骯髒的演示之外,使用某種形式的MVC框架將使未來的生活變得更容易,並且也符合最佳實踐。 Spring使事情變得非常簡單,只需要在前端配置所有東西上花費一些時間。
我應該注意,你無法用Java servlet做什麼,你無法用Spring做。最大的不同是安裝時間。
編輯:值得一提的是,當我發佈這個答案時,我並不知道Spring Boot實際上很容易使用嵌入式Web服務器或更傳統的Web容器來運行。下面是一個快速入門示例的鏈接:http://projects.spring.io/spring-boot/#quick-start
我不會使用Spring很多。但我不認爲它會對性能產生怎樣的巨大影響。 MVC可以提供幫助,但它們可能會造成混亂,額外的工作和沮喪。 對於大多數由一名程序員執行的項目來說,舊的好方法已經足夠了。當有多個開發人員時,MVC可以提供幫助。
我會在大多數項目中使用普通的servlet/jsp。如果我需要可重複使用的組件,我使用wicket。 Servlet隨JSPs/freemarker/velocity或其他模板引擎一起呈現。
如果你按照你的Servlets/JSP命名模式,我不認爲你需要Spring MVC。
春天MVC也可以用於一個模板引擎 –
我已經開發了使用原始servlet和web應用程序框架的項目。 框架爲您提供了一切,只需要設置和配置env,編碼就簡單多了。結果就是你對web dev一無所知。 但是,使用原始api和servlet的代碼使您有機會獲得經驗併成爲程序員。
我發現,隨着Spring版本3+的增加,使用所有基礎引導Spring Web應用程序變得更加容易。 Spring MVC的優勢在於,一旦引導了應用程序上下文和數據庫連接,創建新控制器變得非常容易,並且它遵循更多的邏輯體系結構,新開發人員可能會更容易熟悉它。事實上,在我以前的工作中,我們正在構建一個Java Servlet Web應用程序,但是我們發現我們必須創建自己的應用程序體系結構或主幹,這實際上是更多的工作。 Spring可以照顧到這一點,這意味着開發人員可以使用實際的應用程序邏輯,而不必擔心架構太多。
Servlet技術用於更通用請求 - 響應範例的服務器端擴展。 而Spring只是通過HTTP將它用於Web應用程序。
,從這裏有些報價:http://www.reddit.com/r/java/comments/29f3ul/why_is_spring_mvc_better_than_servlets_jsp/
的Servlet是基於處理請求和響應 一個低級別的API。像Spring MVC這樣的Web框架旨在使 構建Web應用程序,這些Web應用程序更容易處理HTTP請求和響應, 。大多數Java Web框架(包括Spring MVC)在幕後使用servlets 。
你可以使用servlet來編寫一個Web應用程序,但你必須手動到 處理所有的細節。你會得到很少的幫助與 典型的web類的東西驗證,REST,請求/響應機構 JSON,形成的結合,等等。最後你會寫很多代碼工具來 支持Web應用程序。
Web框架,而另一方面,旨在使這一切 東西簡單。使用Spring MVC,即使您仍然可以在需要時訪問 ,您也不會對處理請求和響應的手動 感到困擾。想要在Spring MVC中返回JSON?只需添加一個 @ResponseBody註釋,Spring將會追加它。想要RESTful網址? 簡單。輸入驗證?小菜一碟。想要將表單數據綁定到一個 對象?簡單。使用servlet,你必須手動完成所有這些東西 。
使用原始的servlet可以是一個很好的學習經驗,但。它真的是 有助於闡明web框架如何讓您的生活變得輕鬆!
目前我正在努力切換到Spring,因爲我已經寫了很多代碼。儘管重構當然是一件好事。這也涉及到諸如Spring Roo等數據庫實體的CRUD。 – Mahoni
我不使用Spring MVC,但考慮它,所以我想知道Spring是否會減慢或炸掉應用程序的內存消耗? – nexus
@nexus,你應該發佈作爲一個不同的問題 –