收藏的網上對一些名詞的理解:如jsp、action、service、dao、PO等

JSP:全名爲Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計,它[1]  是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標準通用標記語言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件,後綴名爲(*.jsp)。 用JSP開發的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統上運行。

Action:Action類是用戶請求和業務邏輯之間的橋樑,每個Action充當客戶的一項業務代理。是MVC模式中Control層

Service:service層是在mcv三層模式中新添加一層,能夠更加清晰的定義應用程序的邊界,需要操作數據的時候,通過service層訪問DAO層來實現。service層做的事情,不僅僅是調用DAO操作數據,還會包含了一定的業務邏輯。整個程序的設計,也變成了針對服務進行設計。

DAO:Data Access Object是一個數據訪問接口,數據訪問:顧名思義就是與數據庫打交道。夾在業務邏輯與數據庫資源中間。是MVC模式中Model層
PO(persistant object 持久對象)對象模型反映了對象間的關係,如一對多、多對多、單向雙向訪問關係等。可以看成是與數據庫中的表相映射的java對象。
而VO(value object 值對象) 通常用於業務層之間的數據傳遞,在WEB應用中,一般用於和前臺頁面做數據相互。
Struts1.x被2.x代替後VO層消失了,在action中直接傳遞PO,這樣代碼顯得很簡潔,很多SSH應用也都這樣做。簡單應用完全可以省VO而之久用PO,但還是建議使用VO。原因如下。


在目前的SSH中,若符合JPA規範,那就先設計PO model,再生成數據庫。
在struts 2.1.6中使用json格式作爲輸出,PO對象中包含着複雜的關係,如果又是雙向的,很容易出錯,爲了避免錯誤,我們又要在PO中打上相應的忽略註解,框架一多,各種註解參雜在PO中,顯得很亂,最後都搞不清這些註解到底代表哪個功能。
若使用VO,原先PO中存在的一些字段也可以放入到VO中,PO可完全對應於數據庫字段,而把一些需要和前臺交互的字段放入VO中,VO中儘量存放簡單數據類型。
這樣不管是前臺使用什麼系統(webservice和doNet C#交互,還是使用flex,ajax json等),轉換爲xml格式也異常簡單,製作報表也不用過多的考慮如何解析傳遞過來的複雜對象和子表嵌套。用戶關係的只是workType.name而不是WorkType這個類,VO由業務層產生,傳遞給視圖層或其它各種接口。這樣可以使得層次間進一步解耦,PO對象模型也變得容易維護(少了很多註解,代碼清晰)。也使得前端數據結構的變得更輕(VO都是簡單數據類型),有利於傳輸和解析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章