论基于J2EE的MVC模式在网上书店开发中的应用

2011-10-21 22:33况嫦娥李俊
卷宗 2011年6期

况嫦娥 李俊

摘要:本文探讨了J2EE技术与MVC设计模式结构,并结合MVC设计模式,应用J2EE架构,讲解了网上书店的开发。

关键词:网上书店;MVC模式;J2EE架构

1基于J2EE的MVC设计模式

J2EE是一种利用Java平台来简化诸多与多级企业解决方案的开发、部署和管理相关复杂问题的体系结构。它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行(如Servlet组件在Servlet容器上运行,EJB组件在EJB容器上运行),容器间通过相关的协议进行通信,实现组件间的相互调用。遵从这个规范的开发者将得到行业的广泛支持,使企业级应用的开发变得简单、快速。

MVC(Model-View-Controller)是一种经典的软件体系结构,它采用了“分治”的思想,将表示和数据分离开来,将系统分成三大类:即模型、视图、控制器。其中模型用于存储数据的对象,以JavaBean的形式存在;视图是向控制器提交所需数据、显示模型中的数据,一个模型可以对应一个或多个视图;控制器是负责具体的业务逻辑操作,即控制器根据视图提出的要求对数据做出处理,并将有关结果存储到模型中,并负责让模型的视图进行必要的交互,当模型中的数据变化时,让视图更新显示。

J2EE技术结合MVC设计模式在构建企业级WEB应用中,JSP对应视图,应当尽量避免在JSP中使用大量的Java程序片来处理数据,否则不利于代码的复用;Servlet对应于控制器;而JavaBean对应于模型,主要进行业务的处理。基于J2EE的MVC模式的Web应用如图1所示:

2 网上书店系统的实现

网上书店系统的设计采用了前面介绍的基于J2EE的MVC设计模式,使用了JSP、Servlet、JavaBean、JDBC等技术。系统由前台JSP页面和后台的JavaBean程序组成。JSP页面用于显示数据,JavaBean用于访问数据库和实现复杂的逻辑和算法。本系统通过DBCONN.java访问数据库,通过DFFCONL.java来实现网上书店的各种业务逻辑,如添加新书、查看用户资料等。

(1)前台页面显示

前台页面主要用于显示数据,登录页面是一个静态的页面index.html,由网站菜单和登录页面组成。当用户成功登录后,进入系统的主页main.jsp,根据不同的用户权限,主页中可实现的功能不同。而不同用户权限的用户登录实现相同的功能,由同一个JSP页面来实现,这样即可以增强代码的复用性,也提高了可维护性。如果是以管理员的权限登录,可以实现以下功能:①添加/删除图书种类:由bookpro.jsp来实现;②添加新的图书:newbook.jsp等;③查看用户信息:serchuser.jsp;④修改图书资料:updatebook.jsp。

(2) 数据访问对象DBCONN.java

此JavaBean专门用于数据库访问,包括查询、插入、修改、删除。首先采用connect()与数据库连接,然后调用相应的方法来实现相应的操作。connect方法代码如下:

public boolean connect()

{boolean isConnect=false;

try{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

//pubs為你的数据库的

String user="sa";

String password="";

Connection conn=DriverManager.getConnection(url,user,password); if(conn!=null)

isConnect=true;

}

catch(Exception e)

{

System.out.println(e);

}

return isConnect;

}

(3)业务对象模型DFFCONL.java

业务对象模型用于实现网上书店系统的各种业务逻辑,如新增图书,查看用户信息等。用户执行每一个操作,即此JavaBean的一个方法,都要先对用户权限进行验证,其中查看用户信息的代码如下:

public boolean serchuser(HttpServletRequest request,HttpServletResponse response)

{ boolean isadmin=isAdmin(request,response);

if(!isadmin)

return isadmin;

DBCONN d=new DBCONN();

try{d.connect();

String sql="select * from member";//member为用户表

Statement selstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

Statement rs=selstmt.executeQuery(sql);

while(rs.next())

{

System.out.println(“用户名:”+rs.getString(1)+”真实姓名:”+rs.getString(2)+”地址:”+ rs.getString(3));

}

}

catch(Exception e)

{System.out.print(e);}

finally

{ rs.close();

selstmt.close();

}

return isadmin;

}

(4)数据模式的选取

在网上书店系统设计中我们采用了集中式数据库模式,选用了MicroSoft SQL Server2000数据库,它能处理大量数据,同时保持数据库的完整性并提供许多高级管理数据功能。它的灵活性、易用性和安全性给数据库编程提供了大大的方便。

3 结 语

本文设计了一个基于J2EE的网上书店系统,使用了MVC结构,将数据、专业逻辑、表示逻辑、控制逻辑很好地分离开。提高了程序的可重用性、可维护性、可扩展性,优化了设计模式。

参考文献

[1]孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M].北京:电子

工业出版社,2004.

[2]John Hunt,Chris Loftus.精通J2EE———Java企业级应用[M].周立斌,译.北京:清华大学出版社,2004.

[3]Deepak Alur,John Crupi,Dan Malks.J2EE核心模式[M].2版.刘天北,熊节,译.北京:机械工业出版社,2005.

[4]冯相中,王萍 基于J2EE平台的MVC模式的办公日志系统的实现[J]计算机应用 2005.12

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文