jsp作為Servlet技術的擴展,經常會有人將jsp和Servlet搞混。本文,將為大家帶來servlet和jsp的區別,希望對大家有所幫助。
1. Servlet在Java代碼中可以通過HttpServletResponse對象動態輸出HTML內容。
2. JSP是在靜態HTML內容中嵌入Java代碼,然后Java代碼在被動態執行后生成HTML內容。
1. Servlet雖然能夠很好地組織業務邏輯代碼,但是在Java源文件中,因為是通過字符串拼接的方式生成動態HTML內容,這樣就容易導致代碼維護困難、可讀性差。
2. JSP雖然規避了Servlet在生成HTML內容方面的劣勢,但是在HTML中混入大量、復雜的業務邏輯。
JSP和Servlet都有自身的適用環境,那么有沒有什么辦法能夠讓它們發揮各自的優勢呢?答案是肯有的,MVC模式就能夠完美解決這一問題。
MVC模式,是Model-View-Controller的簡稱,是軟件工程中的一種軟件架構模式,分為三個基本部分,分別是:模型(Model)、視圖(View)和控制器(Controller):
Controller:負責轉發請求,對請求進行處理
View:負責界面顯示
Model:業務功能編寫(例如算法實現)、數據庫設計以及數據存取操作實現
在JSP/Servlet開發的軟件系統中,這三個部分的描述如下所示:
1 . Web瀏覽器發送HTTP請求到服務端,然后被Controller(Servlet)獲取并進行處理(例如參數解析、請求轉發)
2. Controller(Servlet)調用核心業務邏輯——Model部分,獲得結果
3. Controller(Servlet)將邏輯處理結果交給View(JSP),動態輸出HTML內容
4. 動態生成的HTML內容返回到瀏覽器顯示
MVC模式在Web開發中有很大的優勢,它完美規避了JSP與Servlet各自的缺點,讓Servlet只負責業務邏輯部分,而不會生成HTML代碼;同時JSP中也不會充斥著大量的業務代碼,這樣能大提高了代碼的可讀性和可維護性。