熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

什麼是jsp設計模式

2013-11-15 12:13:28  來源: JSP教程 

  一介紹
記得初學jsp的時候總喜歡把他和aspphp去比較也習慣於使用asp的開發模式去寫jsp後來才發現這真是很傻的做法其實jsp一出了來就已經用MVC模式了下面我就簡要說說jsp設計使用MVC來設計

MVC介紹
MVC其實是模視圖控制的縮寫也就是說在使用jsp時有相應的文件去實現相應的操作通常jsp只負責view也就是只負責顯示頁面業務邏輯等 有bean(ejb)去實現下面討論的是不使用ejb的情況下實現如果使用ejbejb負責MC通常會由servlet去實現或者使用 struts
struts的介紹你可是去去看以後的文章中我會介紹

  三設計思路
當你構建一個Application時你必須考慮界面的問題而界面修改是非常平常的如果你在jsp中實現所有的操作一旦修改界面你麻煩大了美工 不懂jsp的你必須自己去修改無數個文件頭不要太大而此時一般時間都很緊使用MVC則可以減少你的一些麻煩
在設計時候jsp只負責顯示頁面也就是說jsp調用Bean(Strutsservlet)傳過來的數據然後顯示而Bean(Struts servlet)負責收集jsp需要的數據用ArrayList(Arttibute)傳給jsp假如需要提交表單一般也直接提交給Struts servlet處理後以後再返回處理信息而其中相應的業務邏輯由Bean去實現

  四Bean的設計
在我使用時候Bean通常有三類分別managerentrydatabase目錄下面
manager下面的bean做商業邏輯
entry下的bean就是封裝數據其實就是每個數據庫表對應會有一個beanjsp得到的也全部是類
database下的bean就是操作數據庫執行如insertupdatedeleteload(查詢一條記錄)
batchload(查詢多條記錄)
他們之間的關系是entry負責封裝數據作為database的調用參數返回結果
manager調用database處理的結果manager和jsp通信jsp得到的結果從manager來 jsp需要做操作調用manager即使是一個insert 在database存在這樣的方法但在manager中你還是需要再封裝一次這樣做的目的是使結構盡量簡單database只負責操作數據庫 manager只做邏輯(取相應的數據)處理相應的邏輯而entry則只把database取到的數據封裝或則把頁面得到的參數封裝做為參數傳給相 應的Bean

  五設計實例
下面我把留言板作為實例來討論
entry/Guestbookjava(留言板對象)
database/GuestbookMapjava(更新刪除修改留言板)
manager/GuestbookManagerjava(處理所有的事務)
數據表結構(postgresql)
create sequence seq_guestbook increment ;
/**序列號生成器**/
create table guestbook(
id int default nextval(’seq_guestbook’) /**主鍵**/
title varchar()/**主題**/
body text/**內容**/
sayid int/**發言人**/
toid int/**接受人**/
saytime datetime default now()/**留言時間**/
newflg smallint default /**是否查看過**/
);

  Guestbookjava
=======================
import javautil*;
public class Guestbook(){
private int id;
private String title;
private body title;
private int sayid;
private int sayid;
private Date saytime;
private short newflg;

  public Guestbook(){

  }$False$

  

  

  public int getId(){
return thisid;
}

  public void setId(int _id){
thisid=_id;
}
……
(全是get/set方法)
}

  GuestbookMapjava
==============================
import Guestbook;
public class GuestbookMap(){
public GuestbookMap(){

  }

  public Guestbook load(int id){
//取到一條guestbook
}
//sqlstr 查詢條件
//orderstr 排序條件
//rcdbegin 記錄開始
//rcdend 記錄結束
//
public ArrayList batchLoad(String sqlstrString orderstrint rcdbeginint rcdend){
//ArrayList 裡面封裝了Guestbook
}

  public void insert(Guestbook info){

  }

  public void update(Guestbook info){

  }

  public void delete(int id){
//取到一條guestbook
}

  public int getRcdNums(String sqlstr){
//取記錄條數
}
}

  GuestbookManagerjava
根據需要封裝需要的方法這部分才是你要寫的
=============================
上面的方式entrydatabase的文件可以自動生成這個工具我已經開發了如果需要聯系我你需要寫的就是GuestbookManager裡 面的方法你也許會覺得工作量比你所有的操作都在jsp中大但是這樣結構非常清晰你還需要的就是寫一個數據庫連接池你所有的數據庫操作都從一個地方 取每一次都去連接數據庫開銷很大的

  六技術優勢
結構清晰
維護方便
保護代碼比較好
………


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20520.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.