servlet由於打印html代碼全部寫在class中間,所以代碼編寫很麻煩,也不便於維護,sun公司才推出了jsp。
但這是否意味著我們在jsp+bean的架構中就不能在bean裡面輸出html代碼呢?
請看站長的看法:
封裝在bean裡面的並不是要封裝所有的打印html語句,對於很多地方類似的東西,封裝後會更好的效果。
比如簡單的例子,一般系統都需要從數據庫中讀取一些字段,然後顯示出來,並且需要有分業的功能,如果這樣全部寫在jsp文件裡面的,代碼就太多了,和asp沒有太大分別,不方便維護。
就拿我參與開發的B2B系統來說,很大一部分都是類似的,產品顯示、信息顯示、訂單顯示等等,寫一個bean可以封裝數據的浏覽翻頁等功能,只需要傳遞幾個字段名字就行了。
<html>
<head>
<title></title>
</head>
<body background="images/bg_flower.gif">
<jsp:userBean id="bean"...>
<%bean.setField("username,sex,hompage..."); //傳遞字段
bean.setTable("tablename"); //傳的表名
bean.printall(); //調用bean的printall方法來實現數據的顯示,並且有分業功能
%>
</html>
這樣開發效率很高,不管多少頁面都輕松搞定,要添加一個新的頁面,我就修改一下字段名和table名字就行了,用不著每一個地方都需要用一大堆語句來實現數據讀取,分也,顯示等的功能,而且看上去邏輯也特別清晰。
弊端:靈活性稍微降低
優勢:但是維護和管理等都很輕松,如果你覺得以前漏掉了分業的跳轉功能,想加入,就不需要更改幾十上百個jsp也面中的分也顯示代碼了,很簡單,就修改一個bean的printall方法就行了。
不知道說清楚沒有,我認為,像以前的servlet那樣所有的html語句都在class中輸出的且很混亂,但是在jsp中邏輯和ui分離並不是說完全不能在bean裡面寫print語句,有時候在bean中print部分代碼反而會效果更好的!!