1. 程式人生 > >jsp、servlet與javabean的區別180110

jsp、servlet與javabean的區別180110

【段落一】為什麼要用javabean和servlet而不是隻用jsp?以及jsp、servlet與javabean在做什麼
相同點 javabean和servlet  它們都是.java檔案,都要編譯成.class檔案放到WEB-INF目錄下
首先,JavaBean和Servlet雖都是Java程式,但是是完全不同的兩個概念。
引用mz3226960提出的MVC的概念,即M-model-模型:JavaBean;V-view-表現:JSP頁面;C-control-控制和處理:Servlet。
其實所有的程式都可以寫在jsp頁面裡,但是存在以下問題:
1、執行效率低下;
2、不安全,所有的程式都在jsp檔案中可見,毫無知識保護可言;
3、邏輯混亂。這樣讓JSP檔案的邏輯很難懂。
於是提出了MVC模式,即將一些處理用的程式從JSP中分離出來,讓JSP頁面只負責顯示,幾乎是html,只不過可以動態的讀取資料和進行少量的邏輯處理,比如迴圈、判斷等。
可能不舉例說你還是不懂,我就舉個最簡單的例子——留言板。
JSP的職責:從資料庫取出資料,顯示所有的留言資訊(當中要用少量的,簡單的邏輯處理:迴圈)、顯示簽寫留言的頁面(幾乎全部都是html)。
Servlet的職責:接受簽寫留言頁面提交過來的標單資料,進行資料檢驗,如果正確,則存入資料庫並返回留言的顯示頁面;如果資料有誤,給出錯誤提示後返回簽寫留言的頁面。可以看到,這個就叫做邏輯處理。這些你也完全可以放在JSP中實現,但是用Servlet,其效率和安全性高多了,也讓JSP頁面變得很簡潔明瞭。

JavaBean的職責:其實一般的留言板是不需要用到JavaBean的,但在這裡,為了讓你明白,還是牽強的把JavaBean用進來。所謂JavaBean,就是一個很簡單的Java類,比如說,網上商城的所有商品是一個商品類,論壇中所有的帖子是一個帖子類,這裡,留言板的所有留言是一個留言類,叫做Message類。每個類有著它特定的屬性和方法。對於Message類,其屬性有主題、內容、日期、留言者等,其方法可以有新增留言、刪除留言、修改留言等。使用JavaBean,主要是為了讓JSP程式設計能夠適應Java程式設計師的習慣,直接對類和例項進行操作,而不是直接去操作資料庫。

相關評論:其實我覺得一般初學者應先有個框架、大概的瞭解,隨後再深入學習,框架不明白,學習不明確

【段落二】

什麼是Servlet?

所謂 Servlet 是指執行在服務端的Java小程式。用於響應客戶機的請求。在預設情況下,Servlet 採用一種無狀態的請求-響應處理方式。Servlet程式碼的主要作用是為了增強Java伺服器端的功能,它執行在伺服器端,用於接收並且處理瀏覽器客戶端發出的請求,該請求是通過配置檔案 web.xml 中的相關配置進行轉發的。也就是說Servlet是一個標準的Java類,它符合Java類的一般規則。和一般Java類不同之處只在於Servlet可以處理HTTP請求。在寫Servlet程式時,一定要注意的是:作為一個Servlet,它必須是HttpServlet的子類,在使用時需要重寫對應的方法。可以重寫下面的方法。
doGet()方法:響應客戶端的Get請求。doPost()方法:響應客戶端的Post請求。也可以直接重寫service方法以宣告在接收對應請求後具體的處理過程。JavaBean和Servlet的不同 :Type1: 一般的JavaBean中,只有屬性宣告和該屬性對應的setXxx和getXxx方法,(一般不建議)不包含業務邏輯;這種JavaBean可以簡單地理解為“資料物件”即可。Type2: 還有一種JavaBean,其內包含業務處理邏輯,用於處理特定的業務資料;一般使用上面所述的“資料物件”(當然也可能不使用)。Servlet主要是用來:接收請求、封裝‘Type1’的JavaBean、呼叫‘Type2’的JavaBean的相應業務邏輯方法、向客戶端發出響應。以上是Struts 1.x所使用的模式:ActionForm 就是 Type1的JavaBean,ActionBean就是Type2的JavaBean,ActionServlet即是上面所述的Servlet。 Struts 2.x則是使用 Type1 + Type2的方式(資料物件和業務處理)和Servlet相結合的方式(實際上就是Webwork的方式)。

【個人原創部分】

增加  如何建立MVC模型的  C-control-控制和處理-Servlet    

1.引入jar包   2.建立類,並 

extendsHttpServlet
3.新增  doGet() doSet()方法          4.在web.xml裡面註冊
<web-app><servlet><servlet-name>HelloWorld</servlet-name><servlet-class>HelloWorld</servlet-class></servlet><servlet-mapping><servlet-name>HelloWorld</servlet-name><url-pattern>/HelloWorld</url-pattern></servlet-mapping></web-app>
javabean常見包名 com.gongsi.xiangmu.POJO 和 com.gongsi.xiangmu.model

略有改動 原連結

【段落一】 https://zhidao.baidu.com/question/32393912.html

【段落二】http://blog.csdn.net/sinat_25398439/article/details/53168420

侵刪 聯絡我的個人網站(預設從新視窗開啟) 憶空吟yikongyin


相關推薦

jspservletjavabean區別180110

【段落一】為什麼要用javabean和servlet而不是隻用jsp?以及jsp、servlet與javabean在做什麼 相同點 javabean和servlet 它們都是.java檔案,都要編譯成.class檔案放到WEB-INF目錄下 首先,JavaBean和Ser

代寫Servlet代寫JSP代寫JavaBean程序作業

外掛 大數 網絡編程 數據庫設計 new HR 賬號 嵌入式 res 代寫Servlet、代寫JSP、代寫JavaBean程序作業Servlet+JSP+JavaBean模式適合開發復雜的web應用,在這種模式下,Servlet負責處理用戶請求,JSP負責數據收集和顯示,J

FilterServlet和Listener區別聯絡

1. Servlet 可以用來建立並返回一個包含基於客戶請求性質的動態內容的完整的html頁面;可以建立可嵌入到現有的html頁面中的一部分html頁面(html片段);可以讀取客戶端發來的隱藏資料;可以 讀取客戶端發來的顯示資料;可以與其他伺服器資源(包括資料庫和jav

JSPservletSQL三者之間的數據傳遞

gre setattr == lec iterator connect cti 輸出 erp JSP、servlet、SQL三者之間的數據傳遞 博客分類: web開發 JSPservletSQL數據庫連接池web開發 前言: 最近一直在做WEB

JSPServletJDBC學習筆記

html con bat 什麽 cal servlet das www 所有 WEB的學習 * 服務器 * 網絡的架構(面試題) * C/S client/server 客戶端/服務器端 例子:QQ 快播 暴風影音 * 優點:交互性好,服務器壓力小。 * 缺點:客戶端更新了

布局模型 之 層模型(position的relativeabsolutefixed區別?)

absolute fixed relative css的布局模型分為流動模型(Flow)、浮動模型(Float)、層模型(Layer)。 浮動模型(Float)和層模型(Layer)有什麽顯著區別? 浮動模型(Float):浮動是讓某元素脫離文檔流的限制,在浮動框之前和之後的非定位元素

sql之truncate deletedrop區別

重置 模式 表數 class term 相同 run 限制 及其 相同點:truncate 和不帶 where 子句的 delete,以及 drop 都會刪除表內的數據不同點:1. truncate 和 delete 只刪除數據不刪除表的結構(定義)drop 語句將刪除表的

JSPServlet中的相對路徑和絕對路徑

項目 home 路徑問題 流程 localhost -name erp 中轉 所在 1.JSP、Servlet中的相對路徑和絕對路徑 前提:假設你的Http地址為http://192.168.0.1/你的web應用為test,path="/test"那麽你的we

SQL truncate deletedrop區別[z]

全部 事務提交 表數據 語句 ons 刪除一行 使用 參與 備份 [z]https://www.cnblogs.com/8765h/archive/2011/11/25/2374167.html 相同點: 1.truncate和不帶where子句的delete、以及drop

IQueryableIEnumberable IListList區別

接口 ble 基於 持久 功能 泛型接口 div 泛型類 查詢 基本概念:IEnumerable:使用的是LINQ to Object方式,它會將AsEnumerable()時對應的所有記錄都先加載到內存,然後在此基礎上再執行後來的QueryIQeurable(

GitGitlabGithub區別

Git 是一種版本控制系統,是一個命令,是一種工具 Github,Gitlab等產品都是第三方基於git這項技術開發的 Github 是一個基於git實現的線上程式碼倉庫,包含一個網站介面,向網際網路開放 Gitlab 是一個基於git實現的線上程式碼倉庫軟體,你可以用git

12closeshutdown區別

 close終止了資料傳送的兩個方向。  shutdown可以有選擇的終止某個方向的資料傳送或者終止資料傳送的兩個方向。  shutdown how=1就可以保證對等方接收到一個EOF字元,而不管其他程序是否已經打開了套接字。而close不能保證,直到套

C#之基礎篇①(VS快捷鍵WriteLine()Write()區別ReadKey()ReadLine()區別double,float,decimal區別

     今天我們來分享一下VS視訊中第一講內容,這篇內容主要分享的是VS工具的使用以及簡單的資訊顯示、變數宣告。 一、導圖類: 二、程式碼類 2.1、顯示資訊 Console.WriteLine("************

jspservletform表單提交過程中的地址(相對和絕對)

今天終於理解這個地址的問題,對於jsp頁面或者是servlet中的相對地址和絕對地址,這裡我需要說的幾點:首先對於相對地址來說:Jsp頁面我現在有一個專案,名稱是shengsiyuan,然後webroot下面有一個資料夾session,session下面有兩個jsp頁面,一個

感知器logisticsvm 區別聯絡

從感知器談起 對於典型的二分類問題,線性分類器的目的就是找一個超平面把正負兩類分開。對於這個超平面,我們可以用下面的式子來表示, ωTx+b=0 感知器是最簡單的一種線性分類器。用f(x)表示分類函式,感知器可以如下來表示。 f(x)=sign(ωTx+

apachejettytomcat區別

一、Apache與Tomcat Apache是Web伺服器(靜態解析,如HTML),Tomcat是Java應用伺服器(動態解析,如JSP)。 Tomcat是一個Servlet(JSP)容器,是Apache的擴充套件,可以獨立於Apache執行。 Apache是普通Web伺服器,只支援ht

html——attrvalattrpropattrcss區別

一、attr與val val只能獲取到元素的value值,如: alert($(this).val()+"unselected");this是checkbox;

藍芽紅外線wifi 區別以及不同頻段無線電磁波的穿牆和繞過障礙物能力(轉)

電磁波按波長由大到小的順序為:無線電波、紅外線、可見光、紫外線、X射線、γ射線 以下是幾種常見的電磁波交流電:波長可達數千公里 (如果需要,還可以製造出波長更長的.總之理論上 無上限)  無線電波:長波(波長在幾公里至幾十公里);中波(波長約在3公里至約50米);短波(波

基於jspservletMySQL 實現讀取顯示資料庫中的圖片

首先介紹mysql資料庫表的資訊: CREATE TABLE `imgtest` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '圖片id', `name` varchar(20) NOT NUL

jspservlet】比較pagerequestsessionapplication的使用範圍

 session物件(1)session功能    Session物件主要用於儲存使用者的各種資訊,直到它的生命週期超過或被人為釋放掉為止,可以通過session物件來判斷此使用者是否是合法使用者。    Session物件是javax.Servlet.http.HttpSession介面的例項化物件,ses