JSP设计模式

原创 2004年06月27日 14:32:00
jsp设计模式---MVC模式
一:介绍
以前自己是写asp和php代码的,后来为了赶上时代的步伐吧.我开始涉足jsp.
但是在刚刚开始写的时候,总是喜欢拿jsp和asp对比着来写程序.后来发现这样真的很笨.而且这样写jsp代码不如就写asp好了,根本就体现不出jsp和java的强大.当然这个就是我今天要和大家讨论的在jsp中实现MVC三层模式.
二:什么是MVC
MVC是MODEL_VIEW_CONTROL的缩写。MODEL_VIEW_CONTROL是软件设计的典型结构。在这种设计结构下,一个应用被分为三个部分:model,view和control,每个部分负责不同的功能。model是指应用程序的数据,以及对这些数据的操作;view是指用户界面;control负责用户界面和程序数据之间的同步,也就是完成两个方向的动作:一、在根据用户界面(view)的操作完成对程序数据(model)的更新,二、将程序数据(model)的改变及时反应到用户界面(view)上。
三:设计思路
当你构建一个网站时。你必须考虑界面的问题,而界面修改是非常平常的。如果你在jsp中实现所有的操作,一旦修改界面你麻烦大了。美工不懂jsp的,你必须自己去修改无数个文件,头不要太大,而此时一般时间都很紧,使用MVC则可以减少你的一些麻烦。
在设计时候jsp只负责显示页面,也就是说jsp调用Bean(Struts,servlet)传过来的数据然后显示而Bean(Struts,servlet)负责收集jsp需要的数据,用ArrayList(Arttibute)传给jsp。假如需要提交表单,一般也直接提交给Struts,servlet,处理后以后再返回处理信息。而其中相应的业务逻辑由Bean去实现。

四:Bean的设计
我一般在设计Bean的时候有两个目录:
比如说文章系统就有:
com.Guessbook.business

com.Guessbook.db
这两个文件夹(包)
business下放业务逻辑和封装数据
db下放操作数据库和数据库连接程序(当然我没有用数据池的情况下,建议使用存储过程)
五:设计实例
不知道为什么所有写设计实例和入门程序的都喜欢用留言板,那我也用用吧.

business下
有GuestbookInfo.java(用于封装数据) GuestbookFactory.java(连接DBGuestbook.java) Guestbook.java(用于写抽象类、接口并实现业务逻辑)
db下
有DBGuestbook.java(所有对数据库的操作都在这个里面,比如:insert,update,select,delete,并将没有操作在一个方法内) 和 DBConnection.java(数据库连接文件)


数据表结构
create table guestbook(
id int8 default nextval('seq_guestbook'), /**主键**/
title varchar(),/**主题**/
body text,/**内容**/
sayid int8,/**发言人**/
toid int8,/**接受人**/
saytime datetime default now(),/**留言时间**/
newflg smallint default 1/**是否查看过**/
);

以下是部分代码,仅参考:
GuestbookInfo.java
=======================
import java.util.*;
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(){

}

public int getId(){
return this.id;
}

public void setId(int _id){
this.id=_id;
}
........
(全是get/set方法)
}

GuestbookFactory.java
============================================
public class GuestbookFactory {
private static String className = "com.Guestbook.db.DBGuestbook";
public GuestbookFactory() {
}
public static Guestbook getInstance() {
try {
return () Class.forName(className).newInstance();
}
catch (Exception e) {
return null;
}
}

}


Guestbook.java
==============================
package com.Guestbook.business;

import java.util.List;
public abstract class Guestbook {
protected GuestbookInfo gi;
public Guestbook() {
}
public GuestbookInfo getGi() {
return gi;
}
public void setGi(GuestbookInfo gi) {
this.gi = gi;
}
public abstract List getGuestbookList();

//下面全是你对数据库操作的方法


}


DBGuestbook.java
============================
package com.Guestbook.db;
import java.sql.*;
import java.util.List;
import java.util.ArrayList;
import com.Guestbook.business.*;

public class DBGuestbook extends Guestbook {
String sql;
public DBGuestbook() {
}
public List getGuestbookList(){
ResultSet rs = null;
List GuestbookList = new ArrayList();
DBConnection conn = new DBConnection();

try{
rs=conn.executeQuery("select * from guestbook");

while (rs.next()){
GuessbookInfo gi=new GuestbookInfo();
gi.setId(rs.getInt("id"));
//实现其他的方法 略
GuestbookList.add(gi);
}
}
catch (Exception e) {
System.err.println(
"com.Guessbook.db.DBGuestbook.getGuestbookList()" + "出错");
e.printStackTrace();
}
finally {
conn.close();
return GuestbookList;
}

}
}

六:技术优势
1:结构清晰
2:维护方便
3:保护代码比较好。

一个jsp页面引入另一个jsp页面的三种方式 及静态引入和动态引入的区别

1.第一种:jstl  import   c:import url="inlayingJsp.jsp">c:import>  2. 第二种:jsp include指令 include指令告诉容器...
  • fn_2015
  • fn_2015
  • 2017年04月21日 10:27
  • 18164

JSP中的两种注释方式

JSP页面中的注释 语法 例子
  • dingding_12345
  • dingding_12345
  • 2015年08月25日 13:38
  • 3996

JSP和HTML的区别

jsp和html的区别
  • projectM
  • projectM
  • 2015年01月07日 14:49
  • 6462

JSP页面<%@ ...%>是 什么意思

JSP页面是 什么意思  分享| 2012-10-14 19:11ㄟす丿し | 浏览 4593 次  JSP 2012-10-15 09:34 提问者采纳 ...
  • evilcry2012
  • evilcry2012
  • 2015年11月20日 10:07
  • 1798

JSP快速入门教程——全十讲

第一讲(参考《Java Web程序设计基础教程》第1章) 1 JSP 和 Java的关系    一般Java指的标注版 Java SE    另外两个版本:Java EE 和 Java ME...
  • hunannanhu
  • hunannanhu
  • 2015年05月22日 14:37
  • 7958

jsp编译、执行过程

一、jsp执行过程图解用户访问jsp页面时,jsp的处理过程如下图所示: 二、预处理阶段客户第一次请求jsp页面时,jsp引擎会预处理jsp文件中的脚本代码(HTML)和代码片段(java代码)全部...
  • napoay
  • napoay
  • 2016年02月27日 14:14
  • 7430

PHP与JSP比较

现在市场上的oa基本上可归结为两大阵营,即php阵营和java阵营。但对接触oa不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异。其实, PHP + MYSQ...
  • lisongjia123
  • lisongjia123
  • 2015年05月02日 13:21
  • 3646

JSP的结构和生命周期

1.JSP的结构 网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面。容器负责截获对JSP页面的请求。JSP容器和Web服务器协同合作,为JSP的正常运行提供必要的运行环境和其它服务,并且...
  • u012877472
  • u012877472
  • 2016年02月05日 12:28
  • 4540

jsp访问数据库(完整总结)

1:数据表 -+-----+------+----------+-------------+----------------+------------+------------------+----...
  • pangqiandou
  • pangqiandou
  • 2016年10月22日 00:13
  • 5943

Jsp的九大对象,七大动作,三大指令

jsp九大内置对象: 1>out 向客户端输出数据,字节流.如out.print(" dgaweyr");   2>request 接收客户端的http请求. String getParame...
  • u010897406
  • u010897406
  • 2015年11月03日 16:45
  • 16700
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP设计模式
举报原因:
原因补充:

(最多只允许输入30个字)