用JSP/Servlet开发简单的用户注册系统

  作者:板桥banq

上页

2.7  小结

从以上本系统的开发实践中,可以总结出一套基于JSP/JavaBeans+JDBC数据管理系统通用开发框架。数据管理系统就是意味着对数据库数据的新增、修改、查询和删除。这是很多小型管理信息系统中经常需要使用的开发技术。

现将这套开发框架总结如下:

将需要在数据库中保存的数据称为数据实体对象。设计数据库时保证有一个表有一个主键PRIMARY KEY,假设该数据实体对象为Entity,则对应的数据表为entity

CREATE TABLE entity(

id int(20) NOT NULL,              //主键

record1                            //记录名一

record2                             //记录名二

...                                     //更多记录

PRIMARY KEY (id)

)

第二步建立这个表对应的JavaBeans,如下:

public EntityBean{

//主键属性以及操作方法

private int id = 0;

public void setId(int id) { this.id = id; }

public int getId() { return id; }

//以记录名为名称的属性和操作方法

private String record1 ;

public void setRecord1(String record1) { this.record1 = record1; }

public String getRecord1() { return record1; }

....

//数据库替换操作方法

//建议用replace 代替insert update

//replace方法中实现对数据库xxx replace操作

public void replace() throws Exception {

//    replace intp xxx (id,记录名,..) values (?,?,..)

...

}

//数据库删除操作方法

public void delete() throws Exception {

...

}

//数据库查询操作方法

public void selete() throws Exception {

...

}

//数据库大量数据查询操作方法

public Collection selete() throws Exception {

...

}

}

第三步实现相应的开发表现界面,即JSP页面。例如名为entity.jsp,在该JSP页面加入关于这个实体数据的所有操作方式。比如User是用户资料表,那么在user.jsp中是关于用户资料的新增、修改和查询;Product是产品数据表,那么在product.jsp中就是关于产品的新增、修改和查询操作。entity.jsp页面操作模板如下:

//调用JavaBeans

<jsp:useBean id="ID" scope="page" class="EntityBean"/>

//下面一句保证jsp表单中的数据自动进入JavaBeans对应的属性数据中

<jsp:setProperty name="ID" property="*" />

<%if (request.getParameter("save"))  //如果是数据保存调用

//调用bean中的replace方法

xxxBean.replace()

else if (request.getParameter("del"))  //如果数据删除调用

//调用bean中的delete方法

xxxBean.delete()

else{  //默认是显示数据输入表单

%>

<form action="xxx.jsp" method=post>

<%

<input type=hidden name=save value=on> //本次表单提交是数据保存

if (request.getParameter("id")!=null) //id不为空表示是编辑调用

{

//如果是编辑调用,查询数据库,xxxBean就包含相应的原来的属性值

xxxBean.select();

%><input type=hidden name=id value=request.getParameter("id")> <%

}%>

//如果数据表ID是自动产生就无需下一行

<input type=text name=id value=<%=xxx.getId()%>>

//Form的字段形式陈列出各个数据表字段

<input type=text name=record1 value=<%=xxx.getRecord1()%> >

...

<%

}

%>

对上面同一个JSP不同的调用方式决定了数据的不同操作方式:

·          新增Entity数据:直接调用entity.jspentity.jsp将显示一个空的表单。

·          编辑Entity数据:通过输入参数调用entity.jsp,如entity.jsp?id=xxxentity判断id不为空,将以id的值从数据库中查询,将查询后的值赋予表单的各个字段,这样entity.jsp将显示一个包含原来数据的表单。

·          新增或编辑完成后,提交的都是保存操作,执行数据库存储操作。

这样通过一个entity.jsp可以完成数据对象Entity的新增、修改和删除操作,这种模板做法可以帮助理清复杂数据对象的操作,提高数据对象操作的开发效率,便于维护和拓展。

上述这套开发模板可以适用在任何数据表相关操作中,因为管理信息系统主要是由大量的数据操作而组成的。例如一个客户资源系统,实际围绕着客户Customer有大量的数据操作,底层无非都是增、删、改等基本操作。

本章节的用户注册系统也是按照这个开发模板思路实现的。在以后章节中,将介绍在StrutEJB框架下,数据对象的增、删、改、查如何实现,在“网上商店系统”中将介绍这种新的应用框架实现。虽然这种应用框架比本章介绍增、删、改、查模板复杂,但是它真正体现了J2EE多层结构的优点,具有更强的可重用性和可拓展性。

本章主要介绍J2EEWeb技术的一种实现,通过直接调用JDBC访问数据库。因此,在设计理念上还是沿用传统系统的混合式架构。在这种架构下,用户界面处理和数据库处理混淆在一起,彼此联系紧密,在可维护性和可拓展性方面相当薄弱,经常会发生修改一个点引发整个系统的运行崩溃,调试或追查内存泄漏等问题时困难,系统的稳定性和健壮性很差。这些问题将在以后章节介绍的J2EE完整的多层结构中得到解决。

当然,简单易开发还是本章Web应用技术的一个主要特点,因此,这种技术适合应用在一些小型系统中。

首页