程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 極簡風格Web架構,jsp+jdbc的二次復辟

極簡風格Web架構,jsp+jdbc的二次復辟

編輯:關於JAVA

對於演示原型,上午要下午給的快速交付,或者某些不知道到底一年有多少個人點進去的網站角落,或者極少數管理人員才用到的管理功能,在恨不能PHP,ror的時候,你會想起JSP+jdbc的溫暖。

又或者你請到了只會寫JSP和sql的極品,又想讓他明天開始干活……

所以在SS3裡另做了這個extreme-web風格示例?, 在簡化到no config file的JSP+jdbc同時,仍然是個可堪一觀的MVC,仍然基於親愛的Spring.

VIEw層:一個JSP

Web應用裡,單純的內容展示型場景占絕大多數。我們也單純的在JSP的開始代碼調用Model層的Service Bean查出所需內容。

一頁到尾,不要再扯什麼Struts2 Action,什麼struts.XML.

內容展示時可以繼續忍受旁人的鄙視,直接在頁面中嵌入JSp顯示代碼;也可以將查詢結果放入貫通兩界的pageContext裡,換用JSP2.0 EL和JSTL taglib來作展示。

Controller層:還是一個JSP

少量的用戶提交內容的場景,就會來到這個代替Struts2 Action的JSp,由它來調用Model層的Service Bean,然後又redirect/forward回VIEw層的JSP.如果順手,可以用spring的DataBinder 將Request參數綁定到DTO.否則繼續復古的用N多request.getParameter("foo")手工組合。

Model層:一個使用Spring JdbcTemplate的Pojo

為什麼不繼續用JSP,徹底的改代碼不重啟服務器?因為捨不得Spring的JdbcTemplate/DataSource/Transcation這一系列功能。

用Spring 2.5的@Service注冊bean,就不用在applicationContext.XML定義bean了。

然後繼續用@Transcational 定義事務,不再編寫commit/rollback語句。

Spring的SimpleJDBCTemplate其實也挺好用的,順手的話,可以將輸入參數和ResultSet都直接反射到DTO上。

不順手的話,用MapSqlParameterSource綁定DTO到輸入參數,用ParameterizedRowMapper綁定ResultSet到DTO.

除了上面幾點,其他地方也簡化退化了,比如maven的功能退化到jar管理,連接池直接用commons-dbcp定義不依賴應用服務器等等……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved