JSP通讯簿管理系统课程设计Word格式.docx
《JSP通讯簿管理系统课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《JSP通讯簿管理系统课程设计Word格式.docx(35页珍藏版)》请在冰豆网上搜索。
依据需求分析结果,通讯簿管理系统可以分为3个模块:
数据库访问模块、用户权限管理模块、用户功能模块,如图所示:
数据库访问模块
用户权限管理模块
用户功能模块
2.3模块设计
(1)数据库访问模块:
数据库访问模块功能树如图所示:
加载驱动程序
创建连接,执行查询语句
创建连接,执行非查询语句
关闭连接
(2)用户权限管理模块:
提供新用户注册功能、用户登录功能和用户退出功能。
用户权限管理模块功能树如图所示:
用户注册
用户登录
用户退出
(3)用户功能模块:
包括查询通讯记录功能、添加新用户功能、修改用户信息和删除用户信息等功能。
用户功能模块功能树如图所示:
查询用户
添加用户
删除用户
修改用户
2.4系统流程描述
开始
新用户注册
退出
2.5界面设计
通讯簿管理系统的界面设计仍要遵循简洁美观、方便易用的原则。
为使用户在各个功能页面方便地跳转,并能随时查看运行结果,本系统采用了划分框窗的页面布局方式,将整个浏览器窗口划分为3个区域。
其中,top区域主要负责显示各个功能页面的超链接,便于用户随时切换;
left区域主要负责显示用户进行当前操作时输入信息的表单;
right区域主要负责显示每次操作的运行结果。
具体设计如下:
系统登录页面设计效果图
注册新用户页面设计效果图
用户功能页面(查询用户页面)设计效果图
修改用户信息页面设计效果图
添加用户页面设计效果图
删除用户页面设计效果图
2.6数据库设计
本系统采用MySQL数据库,在数据库中使用数据表userinfo来储存用户信息,表的结构如下表所示:
3.详细设计
基于系统需求分析与系统总体设计结论,将分别阐述系统的详细设计和实现过程。
3.1应用部署图
3.2访问数据库的JavaBean
由于在本系统的多个JSP页面中都需要访问数据库,因此使用一个JavaBean来专门完成数据库的连接、访问等操作。
这样,既可以节省编码时间,也提高了代码的利用率。
1.模块描述
负责完成与数据库的连接、访问、关闭等操作。
2.类的设计与实现
(1)名称:
databaseTXB.java
(2)功能:
负责完成与数据库的连接、访问、关闭等操作
(3)程序设计清单:
packagedatabase;
importjava.sql.*;
importjava.lang.*;
publicclassdatabaseTXB{
Connectionconnect=null;
ResultSetrs=null;
publicdatabaseTXB()
{
try{
Class.forName("
com.mysql.jdbc.Driver"
);
}
catch(ClassNotFoundExceptione)
{
System.err.println(e.getMessage());
}
publicbooleanlogInUser(StringuserName,StringuserPassword)//用户登录
booleanuserExist=false;
try
connect=DriverManager.getConnection("
jdbc:
mysql:
//localhost:
3306/db"
"
root"
123"
Statementstmt=connect.createStatement();
StringstrSql="
select*fromuserinfowhereuserName='
"
+change(userName)+"
'
anduserPassword='
+userPassword+"
;
//建立查找用户名和密码的SQL语句
rs=stmt.executeQuery(strSql);
//执行该SQL语句,运回ResultSet对象
if(rs.next())//分析ResultSet对象,确定用户是否存在
{
userExist=true;
connect.close();
}
returnuserExist;
catch(SQLExceptione)
e.printStackTrace();
returnfalse;
publicResultSetexecuteQuery(Stringsql)//执行SQL语句
rs=stmt.executeQuery(sql);
catch(SQLExceptionex)
System.err.println(ex.getMessage());
returnrs;
publicintexecuteUpdate(Stringsql)//修改用户
intresult=0;
connect=DriverManager.getConnection("
result=stmt.executeUpdate(sql);
returnresult;
publicstaticStringchange(Stringstr)//处理中文转码
byte[]byteStr=str.getBytes("
ISO-8859-1"
returnnewString(byteStr,"
GBK"
catch(Exceptione)
returnstr;
publicvoidclose()//关闭连接
connect.close();
System.out.println(e.getMessage());
3.3用户权限管理模块
用户权限管理模块主要提供新用户注册、用户登录及退出等功能。
其中完成注册、登录功能的各JSP页面中均需访问数据库,因此直接调用了刚刚实现并发布好的DatabaseBean来完成数据库操作。
提供新用户注册功能、登录功能、退出功能。
2.源文件定义
(1)login.html
名称:
通讯簿管理系统首页
功能:
系统登录页面,核对用户登录系统时的用户名和密码
<
!
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
>
html>
<
head>
title>
用户登录<
/title>
metahttp-equiv="
keywords"
content="
keyword1,keyword2,keyword3"
description"
thisismypage"
content-type"
text/html;
charset=GBK"
--<
linkrel="
stylesheet"
type="
text/css"
href="
./styles.css"
-->
/head>
bodybackground="
23.jpg"
center>
h2>
/h2>
formmethod="
post"
action="
/JSP_Demo/servlet/servletTXB"
tableborderbordercolor="
#0099FF"
bgcolor='
#CCFFFF'
tr>
tdwidth="
40%"
用户名:
/td>
td>
inputtype="
text"
name="
name"
密码:
password"
tdcolspan="
2"
align="
center"
<
submit"
value="
登录"
&
nbsp;
reset"
清空"
/table>
/form>
ahref="
register.jsp"
新用户注册<
/a>
/center>
/body>
/html>
(2)servletTXB.java
处理登录信息的servlet
调用databaseTXB.jsp中的logInUser方法,核对用户登录信息。
当用户信息正确时,转到用户功能页面,不正确时,重定向回login页面。
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importdatabase.databaseTXB;
publicclassservletTXBextendsHttpServlet{
/**
*Constructoroftheobject.
*/
publicservletTXB(){
super();
*Destructionoftheservlet.<
br>
publicvoiddestroy(){
super.destroy();
//Justputs"
destroy"
stringinlog
//Putyourcodehere
*ThedoGetmethodoftheservlet.<
*
*Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.
*
*@paramrequesttherequestsendbytheclienttotheserver
*@paramresponsetheresponsesendbytheservertotheclient
*@throwsServletExceptionifanerroroccurred
*@throwsIOExceptionifanerroroccurred
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("
text/html"
PrintWriterout=response.getWriter();
out
.println("
DOCTYPEHTMLPUBLIC\"
-//W3C//DTDHTML4.01Transitional//EN\"
out.println("
HTML>
HEAD>
TITLE>
AServlet<
/TITLE>
/HEAD>
BODY>
out.print("
Thisis"
out.print(this.getClass());
usingtheGETmethod"
/BODY>
/HTML>
out.flush();
out.close();
*ThedoPostmethodoftheservlet.<
*Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
usingthePOSTmethod"
databaseTXBdatabase=newdatabaseTXB();
StringuN=request.getParameter("
StringuserPS=request.getParameter("
try{
if(database.logInUser(uN,userPS))
{
response.sendRedirect("
home.jsp"
}
else
login.html"
catch(Exceptione)
out.println("
Error."
}
*Initializationoftheservlet.<
*@throwsServletExceptionifanerroroccurs
publicvoidinit()throwsServletException{
(3)register.jsp
新用户注册页面
负责显示新用户注册时填写注册信息的表单。
%@pagelanguage="
java"
contentType="
pageEncoding="
%>
DOCTYPEhtmlPUBLIC"
"
http:
//www.w3.org/TR/html4/loose.dtd"
Content-Type"
用户注册<
5.jpg"
dealregister.jsp"
userName"
userPassword"
性别:
radio"
sex"
男"
男&
女"
女<
年龄:
age"
联系电话:
phone"
电子邮件:
email"
地址:
address"
注册"
(4)dealregister.jsp
新用户注册处理页面
将新用户的信息储存到userinfo表中
import="
java.sql.*"
注册处理页面<
jsp:
u