JSP课程设计基于JSP网络通讯录设计文档1.docx
- 文档编号:8114845
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:14
- 大小:391.65KB
JSP课程设计基于JSP网络通讯录设计文档1.docx
《JSP课程设计基于JSP网络通讯录设计文档1.docx》由会员分享,可在线阅读,更多相关《JSP课程设计基于JSP网络通讯录设计文档1.docx(14页珍藏版)》请在冰豆网上搜索。
JSP课程设计基于JSP网络通讯录设计文档1
学院
Jsp技能训练计划
(2010年至2011学年度第1学期)
学院:
专业:
训练项目:
JSP设计
成员:
目录
JSP实现网络通讯录3
第1章JavaWeb应用背景介绍3
1.1什么是Web编程3
1.2JSP简介3
1.3JSP的优点4
第二章网络通讯录的实现4
2.1需求分析4
2.2数据库实现过程4
2.3在线通讯录的实体类设计6
2.4在线通讯录的功能7
2.5在线通讯录MVC模式设计7
2.6各阶段具体实现过程8
2.6.1项目文件结构图8
2.6.2用户登录的实现8
2.6.3通讯录名片的插入操作9
2.6.4通讯录名片的查看操作11
2.6.5通讯录名片的删除操作11
2.6.6通讯录名片的分类查询操作12
第三章个人总结13
个人总结13
JSP实现网络通讯录
第1章JavaWeb应用背景介绍
WWW是目前Internet上的主要服务类型之一,WWW的基础是基于HTML的页面,使用在HTML基础上的脚本语言进行应用程序开发,可以创建动态生成内容的Web页面。
JSP是一种在服务器端编译执行的Web设计语言,其脚本语言采用Java,并继承了Java的所有优点。
1.1什么是Web编程
Web编程简单地说是基于WWW的Internet上的应用程序开发,随着Internet的普及与传播,越来越多的人通过WWW走进网络世界的大门。
CGI(CommonGatewayInterface)应用程序的第一次引入了动态交互的概念,这些运行于服务器端的脚本程序通常用Perl语言或C语言写成,需要编译才能运行。
随着Web应用程序技术的发展,CGI所引入的动态内容概念被很多新技术所实现和发展,基于程序运行的地点大致可以分为两大类:
一类是随着HTML页面下载并运行于客户端的程序脚本,例如ActiveX控件,DHTML,JavaApplet和JavaScript;另一类程序是基于服务器端的技术,例如ActiveServerPage(ASP),PHP,JavaServerPage(JSP),JavaServlet等。
1.2JSP简介
JSP是JavaServerPage技术的缩写,是由Java语言的创造者Sun公司提出、多家公司参与制定的动态网页技术标准。
通过在传统的(*.html,*.htm)中加入Java代码和JSP标记,构成后缀为*.jsp的JSP网页文件。
Web服务器在遇到访问JSP页面的请求时,首先执行其中的代码片断,然后将执行的结果以普通HTML方式返回客户浏览器,JSP页面中的程序代码在客户端是看不到的。
这些内嵌的Java程序代码可以完成数据库的操作、文件上传、网页重定向、发送电子邮件的等功能,所有的操作均在服务器端进行,客户端得到的仅仅是运行的结果,因而对客户浏览器的要求很低。
JSP有JavaServlet技术为基础,利用可跨平台运行的JavaBeans组件,可以方便的操作数据库,执行各种复杂的查询,使逻辑处理和显示互相分离。
1.3JSP的优点
1.3.1跨平台运行
JSP的最大优势在于平台可移植性,利用Java语言的平台无关性,任何JSP程序只要编译一次,就可以在任何服务器平台使用。
1.3.2执行效率高
JSP在服务器端被Java虚拟机编译成Servlet执行,编译的过程只在第一次执行时进行,以后Servlet对于每个客户端请求都使用内存中的同一副本处理,而不像CGI那样需要为每个请求创建单独的进程,而只要在Java虚拟机中装载一个Servlet,因而节省了大量的服务器资源,执行时性能优化,代码效率高。
1.3.3服务器端组件支持
服务器端编程语言往往由于缺少强大的服务器组件支持而受到限制,JSP使用成熟的JavaBeans技术,可以轻松得到各种服务器组件的支持。
1.3.4数据库支持
JSP技术利用Java语言的数据库操纵能力可以与任何JDBC兼容数据库建立连接,执行常用的查询、添加、更新、删除操作和复杂的逻辑代数。
利用Sun公司开发的JDBC-ODBC桥,JSP还可以访问现有的ODBC(OpenDataBaseConnection)驱动的数据库系统。
目前市场上的主流数据库产品都带有ODBC支持,所以JSP可以访问Oracle、MicrosoftSQLServer和MySQL等数据库产品。
第二章网络通讯录的实现
2.1需求分析
由于纸制或电子形式的通讯录,携带不方便,或容易忘记等方面的缺点,所以要开发一个网络通讯录,方便用户提供使用:
1.用户注册、登录功能
2.登录后,显示出与当前用户相关的联系人名单
3.添加新联系人
4.删除联系人
5.根据联系人类型查找联系人信息
根据以上要求,开发一个网络通讯录。
2.2数据库实现过程
创建在线通讯录数据库、表,数据库名为:
addressBook。
数据表为:
USERS、BOOK.实现代码如下:
Book表
Users表
USE[addressBook]
GO
/******Object:
Table[dbo].[users]ScriptDate:
12/29/201012:
30:
07******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[users](
[userID][int]IDENTITY(1,1)NOTNULL,
[userName][varchar](50)NULL,
[password][varchar](50)NULL,
[realName][varchar](50)NULL,
[sex][varchar](50)NULL,
CONSTRAINT[PK_users]PRIMARYKEYCLUSTERED
(
[userID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
/******Object:
Table[dbo].[book]ScriptDate:
12/29/201012:
30:
07******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[book](
[id][int]IDENTITY(1,1)NOTNULL,
[name][varchar](50)NULL,
[sex][varchar](50)NULL,
[phone][varchar](50)NULL,
[address][varchar](50)NULL,
[mobilePhone][varchar](50)NULL,
[company][varchar](50)NULL,
[comPhone][varchar](50)NULL,
[comAddress][varchar](50)NULL,
[relation][int]NULL,
[userID][int]NULL,
CONSTRAINT[PK_book]PRIMARYKEYCLUSTERED
(
[id]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
2.3在线通讯录的实体类设计
用户类:
Users.java
通讯录类:
Book.java
2.4在线通讯录的功能
●用户登录验证
●添加新联系人
●删除联系人信息
●查找所有联系人
●按照类别查找联系人
2.5在线通讯录MVC模式设计
模型(Model)——就是业务流程/状态的处理以及业务规则的制定。
视图(View)——视图就是用户交互的界面。
控制器(Controller)——可以理解为从用户接受请求,将模型与视图匹配在一起,共同完成用户的请求。
2.6各阶段具体实现过程
2.6.1项目文件结构图
2.6.2用户登录的实现
用户登录文件为index.jsp,用来实现用户的登录。
用户输入用户名和密码后,提交"LoginServlet"进行验证处理,验证正确之后。
实现登陆。
具体代码如下:
StringuserName=request.getParameter("userName");
Stringpassword=request.getParameter("password");
UserBouserBo=newUserBo();
Usersuser=userBo.valiUser(userName,password);
if(user==null){
//登陆失败
PrintWriterout=response.getWriter();
out.println("");
out.flush();
out.close();
}else{
//登陆成功
HttpSessionsession=request.getSession();
session.setAttribute("user",user);
request.getRequestDispatcher("SelectServlet").forward(request,response);
}
2.6.3通讯录名片的插入操作
实现名片的增加操作,涉及到一下页面:
addBook.jsp、AddServlet.java、UsersBo.java。
其中,addBook.jsp为用户所见的界面;AddServlet.java处理数据实现数据的插入,将新增名片内容写入数据库。
具体代码如下:
response.setContentType("text/html;charset=GBK");
Bookbook=newBook();
request.setCharacterEncoding("GBK");
book.setName(request.getParameter("name"));
book.setSex(request.getParameter("sex"));
book.setPhone(request.getParameter("phone"));
book.setAddress(request.getParameter("address"));
book.setMobilePhone(request.getParameter("mobilePhone"));
book.setCompany(request.getParameter("company"));
book.setComPhone(request.getParameter("comPhone"));
book.setComAddress(request.getParameter("comAddress"));
book.setRelation(Integer.parseInt(request.getParameter("relation")));
book.setUserID(((Users)request.getSession().getAttribute("user")).getUserID());
BookBobookBo=newBookBo();
intresult=bookBo.addBook(book);
PrintWriterout=response.getWriter();
if(result>0){
//添加成功
out.println("");
}else{
//添加失败
out.println("");
}
}
2.6.4通讯录名片的查看操作
实现通讯录的查看操作涉及到一下页面:
SelectServlet.java、bookContent.jsp。
其中,SelectServlet.java实现在数据库中查找信息,交给bookContent.jsp向用户展示。
具体代码如下:
Stringrelation=request.getParameter("relation");
BookBobookBo=newBookBo();
HttpSessionsession=request.getSession(false);
if(session==null||session.getAttribute("user")==null){
response.sendRedirect("index.jsp");
}else{
Listlist=null;
Usersuser=(Users)session.getAttribute("user");
if(relation!
=null&&!
relation.equals("")){
//根据用户ID和联系人类型查询列表
list=bookBo.selectAllBook(user.getUserID(),Integer.parseInt(relation));
request.setAttribute("list",list);
}else{
list=bookBo.selectAllBook(user.getUserID());
request.setAttribute("list",list);
}
request.getRequestDispatcher("bookContent.jsp").forward(request,response);
}
}
2.6.5通讯录名片的删除操作
实现通讯录名片的删除操作,涉及到一下页面:
DeleteServlet.java,它的作用是当用户触发“删除”按钮后,在数据库中将该条数据删除。
具体代码如下:
Stringid=request.getParameter("id");
BookBobookBo=newBookBo();
if(id==null||id.equals("")){
request.getRequestDispatcher("SelectServlet").forward(request,response);
}else{
intresult=bookBo.deleteBook(Integer.parseInt(id));
PrintWriterout=response.getWriter();
if(result>0){
//删除成功
out.println("");
}else{
//删除失败
out.println("");
}
out.flush();
out.close();
}
2.6.6通讯录名片的分类查询操作
实现通讯录名片的分类查询操作,需要一下页面:
SelectServlet.java、bookContent.jsp。
其中,SelectServlet.java通过查询数据库中“book”表中“relation”字段,将用户查询的分类信息交给bookContent.jsp向用户显示,完成交互。
第三章个人总结
个人总结
经过半个学期的坚持不断的对JSP的学习,这段时间,对这个网络通讯录的基本掌握,经过测试,可以使用。
通过这次实习过程,原来我对数据库的链接由不是很熟悉到逐渐熟悉,感觉收获很大,不仅学习了新的JSP技术,又复习了很多的数据库知识。
而且,动手和不动手有很大差距。
在设计实现程序的过程中,遇到很多的困难,我查阅了很多的资料,并在互联网上搜寻相关的资料,虽然这个程序在别人看来十分简单,但是实现过程确实艰辛!
通过这个小项目,是我逐渐熟悉了MVC设计模式为项目分层、通过Servlet接收数据、重定向、转发,通过session:
在会话内存取数据。
课程设计虽然做完了,但我认为这只是一个开始,我们即将跨入社会,如果我们将来参加计算机行业的工作,我觉得这次做课程设计的经验会给我们以后的发展和进步起到很大的引导和促进作用,使我少走些弯路。
个人总结
通过两周的课程设计让我对JavaBean的概念有了更直观深刻的了解,这当中包括JavaBean技术,JavaBean的种类和JavaBean规范,还有它的简单属性和索引属性。
同时对Servlet的技术功能、技术特点、Servlet的生命周期等知识也有了更好的掌握,了解了Servlet编程常用的接口和类,懂的了Servlet的创建和Servlet的配置,也许我还有好多不明白的地方,但是通过这次课程设计让我获益匪浅,他让我知道了只有实践才能真正学好知识,让我懂得团队的配合,对我以后的学业和发展有很大的帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 课程设计 基于 网络 通讯录 设计 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)