`
insertyou
  • 浏览: 900964 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

网络通讯薄(多用户)设计文档

 
阅读更多

网络通讯薄(多用户)

设计文档

组长:张建波

成员:黄隆徽 李旸 黄健 陈文佳 王丰 张林昆

一、网络通讯簿说明

功能概述:(1)支持在线 添加、修改、删除、查询 联系人

(2)支持“多用户”,用户只需进行简单的注册就可以使用。

(3)用户之间数据隔离,互相看不到的对方的数据,达到了数据保密!

系统特点:(1)使用java开发,数据库采用mysql 方便移植!

(2)数据库与系统分离,只需要修改index.jsp就可以支持其他数据库

开发平台:

操作系统:Windows2003

开发工具:Borland JBuilder 2005 Enterprise

JDK版本:JDK1.4

WEB服务器:Tomcat5.0

后台数据库:MySQL Server 5.0

网络通讯薄运行要求:

操作系统: Win2000/XP/2003

WEB服务器:Tomcat4.0/5.0weblog

Tomcat4.0+JDK1.40+JRE1.40

Tomcat5.0+JDK1.50+JRE1.50

数据库:MySQL 4.0MySQL 5.0

Web浏览器:IE5.0以上

二、设计思想与关键程序片

我们的“网络通讯簿”采用 JSP+JavaBean结合HTML的方式开发。

本系统共有3JavaBean

分别是:1-login.java

2-getCnn.java

3-people.java

(一)login.java

login.java 负责初始化MySQL数据库连接,同时保存数据库连接字符串,代码如下:

private static String db = null; //"jdbc:mysql://localhost/myteldb";

private static String db_user = null; //"root";

private static String db_password = null; //"123";

声明了三个静态变量db ,db_user ,db_password通过主页index.jsp传入,这样设计的目的是为后面的getCnn.java提供数据库连接字符串。

login.java包含2个主要方法,方法声明如下:

public String checkUPWD(String userName, String userPwd)

//用户登录密码验证

public int RegNewId(String UserName, String UserPwd)

//用户注册

(二)getCnn.java

getCnn.javalogin.java 获得数据库连接字符串后,对数据库进行连接,并把“数据连接”Connection对象返回给主调函数。

注:本通讯薄的所有对数据库的操作,都基于getCnn。这样设计的目的是为了简化其他部分的代码编写,同时保证数据连接的统一性,便于今后的维护。

数据库连接代码如下:

public class getCnn {

private getCnn() { }//私有构造函数

static Connection con = null; //数据库连接

public static Connection GetConnection() {

Connection con;

try {

Class.forName("com.mysql.jdbc.Driver");

}

catch (ClassNotFoundException e) {}

try {

con= DriverManager.getConnection(

login.GetDBName(),

login.GetDBUserName(),

login.GetDBUserPassword()

);

//login bean里获得 数据库名称、登录用户、密码

return con;

}

catch (SQLException e) {

return null;

}

}

public static void CloseCnn() {

try {if (con!=null) {con.close();}} //关闭数据连接

catch (Exception e) {} ;

}

}

(三)people.java

Bean目前只负责数据的删除

方法声明如下:

public String DeletePeople(String SqlStr)

(四)具体代码请参看,光盘上的mytl\mytel\src\mytel\下的源代码文件

二、模块概述

(一)网络通讯薄共分为6大模块

<!--[if !supportLists]-->(1) <!--[endif]-->用户登录模块

<!--[if !supportLists]-->(2) <!--[endif]-->用户注册模块

<!--[if !supportLists]-->(3) <!--[endif]-->添加联系人信息模块

<!--[if !supportLists]-->(4) <!--[endif]-->修改联系人信息模块

<!--[if !supportLists]-->(5) <!--[endif]-->查询模块

<!--[if !supportLists]-->(6) <!--[endif]-->删除联系人信息模块

(二)关键模块所涉及的程序片说明

1)首页index.jsp

<jsp:useBean id="login" scope="session" class="mytel.login"/>

<%!

//数据库连接信息

String db = "jdbc:mysql://localhost/myteldb"; 数据库连接地址

String db_user = "root"; //数据库登录用户名

String db_password = "123"; //数据库登录用户密码

%>

<%

login.SetDB(db,db_user,db_password); //设置数据库连接字符

%>

2)登录 login.jsp,负责验证用户的登录信息

<jsp:useBean id="login" scope="session" class="mytel.login"/>

<%

String logname = "NULL";

String logpwd = "NULL";

%>

<%

String message = "flase";

if (!(session.isNew())) {

//提交信息后,验证信息是否正确

logname = request.getParameter("user"); //获取用户名

logpwd = request.getParameter("pwd"); //密码

if (!(logname.equals(""))) {

// message = checkUPWD(logname, logpwd); //验证用户名密码

message=login.checkUPWD(logname,logpwd);

if (message == null) {

message = "false";

}

}

}

%>

<%

if (!(session.isNew())) {

if (message.equals("true")||message.equals("admin")) {

session.setAttribute("user_name", logname); //保存用户名

session.setAttribute("user_pwd", logpwd); //用户密码

if(message.equals("admin"))session.setAttribute("power","0");

else

session.setAttribute("power","1");

String url = response.encodeURL("main.jsp");

response.sendRedirect(url);

}

else

{

out.print("用户名密码错误!");

out.print("<p align='center'><a href='index.jsp'>返回</a></p>");

}

}

%>

3)表格绘制,以及数据输出模块showtable.jsp

该模块负责显示数据,它被设计为自页面提供给其他页面调用。例如:查询、修改、删除等模块

<%

Statement sql;

ResultSet rs;

String sqlstr = "select * from t_tel_book";

String str_findfiled = request.getParameter("findfiled"); //查询条件姓名

String str_findwhere = request.getParameter("findwhere"); //查询条件= < >

String str_findTxt = getString(request.getParameter("findTxt")); //查询数据

if (!str_findTxt.equals("")) { //如果查询条件为空,则显示所有数据

sqlstr = sqlstr + " where " + str_findfiled + str_findwhere + "'" + str_findTxt + "'";

sqlstr = sqlstr + " and owner='" + (String) session.getAttribute("user_name") + "'";

}

else

sqlstr = sqlstr + " where owner='" + (String) session.getAttribute("user_name") + "'";

try {

sql=getCnn.GetConnection().createStatement();

rs = sql.executeQuery(sqlstr);

rs.last();

int lastRow=rs.getRow(); //获取最后一条记录

pageCount=(lastRow%pageSize==0)?(lastRow/pageSize):(lastRow/pageSize+1);

String integer=request.getParameter("showPage"); //计算分页显示数据

if(integer==null)integer="1";

try{

showPage=Integer.parseInt(integer);

}catch(NumberFormatException e){

showPage=1;

}

if(showPage<=1)showPage=1;

if(showPage>=pageCount)showPage=pageCount;

posion=(showPage-1)*pageSize+1;

rs.absolute(posion);

for(int i=1;i<=pageSize;i++)

{ //绘制数据表格

out.println("<TR>");

out.println("<TD>" + rs.getString("name") + "</TD>");

out.println("<TD>" + rs.getString("tel") + "</TD>");

out.println("<TD>" + rs.getString("address") + "</TD>");

out.println("<TD>" + rs.getString("email") + "</TD>");

out.println("<TD>" + rs.getString("QQ") + "</TD>");

out.println("<TD>" + rs.getString("mtel") + "</TD>");

out.println("<TD>" + rs.getString("teltype") + "</TD>");

out.println("</TR>");

rs.next();

}

sql.close();

getCnn.CloseCnn(); //关闭数据连结

}

catch (SQLException e) {}

%>

4)查询以及数据修改删除代码如下

数据删除程序片:

<jsp:useBean id="people" scope="page" class="mytel.people"></jsp:useBean>

<%

String sqlstr =null;

sqlstr= "DELETE FROM t_tel_book where name='" + getString(request.getParameter("name")) + "'";

sqlstr = sqlstr + " and owner='" + (String) session.getAttribute("user_name") + "'";

String msg=people.DeletePeople(sqlstr); //删除数据

if(msg.equals("OK")){

out.print("<p align='center'>数据删除成功!</p>");

out.print("<p align='center'><a href='deleteman.jsp'>继续删除</a>&nbsp;&nbsp; <a href='wellcome.htm'>返回</a></p>");

}

else

{ out.print(msg); //数据删除失败

}

%>

数据修改程序片:

<jsp:useBean id="getCnn" scope="session" class="mytel.getCnn"></jsp:useBean>

<%

Statement sql;

ResultSet rs;

String sqlstr = "select * from t_tel_book where name='" + getString(request.getParameter("name")) + "'";

try {

sql = getCnn.GetConnection().createStatement();

rs = sql.executeQuery(sqlstr);

if (rs.next()) {

name = rs.getString("name");

tel = rs.getString("tel");

address = rs.getString("address");

email = rs.getString("email");

qq = rs.getString("QQ");

mtel = rs.getString("mtel");

teltype = rs.getString("teltype");

}

sql.close();

getCnn.CloseCnn();

} catch (SQLException e) {}

%>

数据查询程序片请参考“表格绘制,以及数据输出模块”showtable.js

三、网络通讯簿安装说明

()必备软件:(Win2000环境)

(1)安装JDK1.5+JRE1.5

(2)安装Tomcat5.5(具体安装说明,请查看相关文档)

(3)安装MySQL5.5

注意:数据库root管理员密码请设置为:123456(如果安装时,密码设置的是其他的密码,则需要修改 index.jsp )

()安装系统:

(1) 拷贝:mytelTomcat5.0webapps\root

(2) 拷贝:mytel\classes\下的 mytel Tomcat5.0下的\common\classes

(3) 拷贝:mysql-connector-java-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">3.2.0</chsdate>-alpha-bin.jar Tomcat\common\lib\

(4) 拷贝:mysql-connector-java-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">3.2.0</chsdate>-alpha-bin.jar jre1.50\lib\

(5) 拷贝:mysql-connector-java-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">3.2.0</chsdate>-alpha-bin.jar jre1.50\lib\ext

注:mytel在附带光盘里

()环境配置:(需要根据具体情况修改)

PATH=;.;E:\Borland\JBuilder2005\jdk1.4\bin CATLINA_HOME=E:\Borland\JBuilder2005\thirdparty\jakarta-tomcat-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">5.0.27</chsdate>

JAVA_HOME=E:\Borland\JBuilder2005\jdk1.4

CLASSPATH=E:\Borland\JBuilder2005\jdk1.4\jre\lib\rt.jar;.;E:\Borland\JBuilder200

5\jdk1.4\jre\lib\mysql-connector-java-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">3.2.0</chsdate>-alpha-bin.jar

TOMCAT_HOME=E:\Borland\JBuilder2005\thirdparty\jakarta-tomcat-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">5.0.27</chsdate>

()数据库初始化:(SQL脚本代码如下)

启动MySQL:

程序||MySQL||MySQL Server 5.0||MySQL Command Line Client

输入以下脚本:

//初始化的管理员为: admin 密码 123

create database myteldb; /*创建myteldb数据库*/

use myteldb; /*切换到myteldb数据库*/

drop table if exists t_admin; /*用户表*/

create table t_admin /*创建用户登录表*/

(

username char(20),

userpassword char(20),

power char(20)

)

TYPE=MyISAM,default character set gbk;

drop table if exists t_tel_book;

create table t_tel_book /*创建通讯薄*/

(

owner char(20),

name char(20),

tel char(20),

address char(100),

email char(20),

QQ char(20),

teltype char(20),

mtel char(20)

)

TYPE=MyISAM,default character set gbk;

/*添加系统默认管理员*/

insert into t_admin values('admin','123','0');

/*登录名:admin 密码 123*/

/*______________END___________*/

()测试

IE浏览器输入: htpp://127.0.0.1/mytel/MyJspWebModule/index.jsp

就可以看到效果了!

附录:光盘说明

光盘共包括4个部分:

<!--[if !supportLists]-->1. <!--[endif]-->网络通讯薄源代码 mytel.rar

<!--[if !supportLists]-->2. <!--[endif]-->必备软件Tomcat5.0 JDK/JRE5.0 MySQL5.0

<!--[if !supportLists]-->3. <!--[endif]-->MySql数据库连接插件: mysql-connector-java-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">3.2.0</chsdate>-alpha-bin.jar

<!--[if !supportLists]-->4. <!--[endif]-->附带WindowsNT Svere虚拟机,已经安装配置好了。(主要是提供网络通讯薄的演示用。)直接复制到硬盘,使用VM5.0打开。 就可以使用 网络通讯薄“

VM虚拟机说明:(VM虚拟机需要VMware Workstation5.0

本光盘所带的虚拟机,已经配置好了MySQL/JDK/mytel了。

Windows系统登录密码:123456

网络通讯薄:用户admin 密码123

启动Windows后,桌面上有一个图标“网络通讯薄”,直接双击就可以使用了。

<chsdate w:st="on" year="2005" month="12" day="8" islunardate="False" isrocdate="False"><span lang="EN-US" style="FONT-SIZE: 14pt">2005/12/8</span></chsdate>

分享到:
评论

相关推荐

    即时通讯 QQ企业通讯系统设计文档

    即时通讯QQ企业通讯系统设计...这个设计文档详细阐述了如何构建这样一个系统,从底层通信协议到上层用户体验,全面涵盖了即时通讯系统设计的各个方面。对于希望深入了解或实践这一领域的人来说,是一个宝贵的参考资料。

    基于JAVA的网络通讯系统设计与实现(源码+文档)

    标题和描述中提到的是一个基于Java的网络通讯系统,它涉及到毕业设计、课程设计以及学生选课系统的实际应用。这个项目不仅提供了源代码,还有相关的文档资料,这为学习者和开发者提供了完整的参考资料。 首先,Java...

    IM即时通讯SERVER 连接以及模块设计文档

    IM即时通讯SERVER连接及模块设计文档,主要介绍了实现网络视频会议底层通信架构的设计思路与技术细节。该文档详细阐述了软件内部数据在网络上的流动过程、系统内各机器之间的关系及其各自的功能。 #### 二、系统...

    基于JAVA的网络通讯系统设计与实现(WORD论文文档+系统).zip

    基于JAVA的网络通讯系统设计与实现(WORD论文文档+系统) 摘 要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。...

    基于JAVA的网络通讯系统设计与实现(文档+系统).zip

    《基于JAVA的网络通讯系统设计与实现》是一个深入探讨如何使用Java编程语言构建网络通信系统的综合性项目。在本文档和配套系统中,我们将探讨以下几个关键知识点: 1. **Java网络编程基础**:Java提供了丰富的API来...

    Java毕业设计-基于JAVA的网络通讯系统设计与实现(论文+系统).rar

    本资源提供了一个全面的基于Java的网络通讯系统设计与实现的完整资料,包括详细的设计文档、高质量的源代码以及可二次开发的系统框架。该系统采用先进的Java技术,实现了客户端与服务器之间的稳定、高效通信,适用于...

    布谷鸟网络通讯

    布谷鸟网络通讯工具提供快速的图片传输功能,支持批量发送高分辨率图片,且不受文件大小限制,这对于设计人员、摄影师或是需要频繁分享图片的用户来说是一大福音。 文件传输是另一项核心功能。布谷鸟网络通讯工具...

    基于JAVA的网络通讯系统设计与实现.zip

    2. 基于JAVA的网络通讯系统设计与实现.doc:这份文档很可能是项目报告,详细介绍了系统的设计思路、实现方法和结果分析。 3. derby.jar:这是Apache Derby数据库的JAR文件,说明该网络通讯系统可能使用了嵌入式...

    系统分析与设计文档:参考范例

    系统分析与设计文档是软件开发过程中的重要组成部分,它详细记录了从项目开始到系统实现的各个阶段,包括可行性分析、需求分析、系统设计等多个环节。以下是对这些知识点的详细说明: 1. 可行性分析: 可行性分析...

    java网络软件聊天室设计文档.知识.pdf

    Java网络软件聊天室是一种基于Java技术实现的多用户交互平台,允许用户通过网络进行实时的文本、语音甚至视频交流。本设计报告将深入探讨其核心概念、需求分析、概要设计、详细设计以及测试过程。 1. 需求分析 - *...

    android即时通讯方案文档

    ### Android即时通讯方案知识点概述 ...综上所述,简易即时通讯系统的设计不仅要考虑功能的多样性,还需要注重安全性、稳定性和用户体验。通过合理的架构设计和技术选型,可以构建出高效稳定的即时通讯系统。

    带网络通讯的串口通讯程序

    这个程序的核心在于网络通讯协议的设计与实现。它可能采用了TCP/IP协议栈,这是互联网上最基础的通信协议,能够保证数据的可靠传输。TCP(传输控制协议)负责建立和维护连接,确保数据按序无丢失地送达,而IP(网际...

    基于JAVA的网络通讯系统设计与实现(论文+系统)【毕业论文】.zip

    在本项目中,我们主要探讨的是基于JAVA的网络通讯系统的设计与实现,这是一个典型的软件工程实践,涵盖了网络编程、多线程、IO流、Socket通信等多个核心Java技术领域。下面将详细阐述这些知识点: 1. **Java网络...

    iChat设计文档

    iChat是一款基于Java技术开发的即时通讯软件,其设计文档为我们揭示了软件开发中的关键环节,包括需求分析、系统架构、模块设计、数据结构、网络通信以及用户界面等多个方面。以下将详细介绍这些知识点: 1. **需求...

    AB_PLC及网络通讯培训教材

    该软件平台支持RS232和EtherNet-IP网络编程,便于用户进行现场设备的连接和网络通讯的配置。通过RSLogix5000软件,工程师可以实现对PLC的编程控制,以及通过网络方式与PLC进行通讯。 4. AB PLC网络通讯技术 培训...

    【计算机专业Java-毕业设计100套之】基于JAVA的网络通讯系统设计与实现(论文+系统)

    最后,项目文档,包括设计文档、用户手册和毕业论文,是评估和理解系统的重要资源。论文通常会涵盖系统的需求分析、设计决策、实现细节和性能评估等方面。 总之,这个基于Java的网络通讯系统涵盖了计算机科学的多个...

    JAVA源码简单即时通讯工具设计源码/文档

    ### JAVA源码简单即时通讯工具设计源码/文档 #### 知识点解析 ##### 一、即时通讯工具概述 即时通讯(Instant Messaging,简称IM)是指能够即时发送和接收互联网消息等的业务,最初由Mirabilis公司在1996年推出...

    行业文档-设计装置-一种组合式带多媒体网络终端通讯及信息系统装置的服务亭.zip

    标签“行业文档-设计装置-一种组合式带”进一步强调了文档的性质,即它是针对特定行业的设计资料,特别关注的是具备多媒体和网络通讯功能的集成设备。 从压缩包子文件的文件名称“一种组合式带多媒体网络终端通讯及...

    仿webqq2.0设计文档与数据库

    本资源主要涉及的是一个仿WebQQ2.0的聊天应用的设计文档与数据库相关文件,这为我们提供了一个深入理解Web即时通讯系统构建过程的机会。以下将详细讲解其中涉及的关键知识点。 首先,"WebQQ2.0"是腾讯公司推出的一...

Global site tag (gtag.js) - Google Analytics