JSP网络程序设计课程设计.docx
- 文档编号:29457929
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:21
- 大小:1.43MB
JSP网络程序设计课程设计.docx
《JSP网络程序设计课程设计.docx》由会员分享,可在线阅读,更多相关《JSP网络程序设计课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
JSP网络程序设计课程设计
河南理工大学
计算机科学与技术学院
课程设计报告
2014—2015学年第二学期
课程名称网络程序设计
设计题目通讯录设计
姓名--------
学号-----------------
专业班级----------------
指导教师---------------
2015年7月12日
目录
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需求分析
由于纸制或电子形式的通讯录,携带不方便,或容易忘记等方面的缺点,所以要开发一个网络通讯录,方便用户提供使用:
用户注册、登录功能
登录后,显示出与当前用户相关的联系人名单
添加新联系人
删除联系人
根据联系人类型查找联系人信息
根据以上要求,开发一个网络通讯录。
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用户登录的实现
用户登录文件为Register.jsp,用户输入用户名和密码后,提交“addUserServlet
”进行验证处理,若用户名已存在则提示“用户名已存在,请重新输入!
”,并返回注册页面,否则,把信息写入数据库,注册新用户。
“addUserServlet”部分代码:
String userName = request.getParameter("name");
String password = request.getParameter("password");
UserdbManager UserMng = newUserdbManager();
UserBean user = UserMng.findUser(userName);
if
(user !
= null&& user.getName()!
=null&& user.getName().equals(userName))
{
PrintWriter out = response.getWriter();
out.println("");
out.flush();
out.close();
}
else
{
intresult = UserMng.AddUser(userName, password);
if(result > 0)
{
request.getRequestDispatcher("success.jsp").
forward(request,esponse);
}
else
{ System.out.println("添加数据失败");
request.getRequestDispatcher(、"error.jsp").
forward(request,response);
用户登录文件为Login.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("");
}
}
修改联系人信息:
“BookServlet.java”部分代码:
private
BookBean makeBook(HttpServletRequest request) {HttpSession session = request.getSession();
(UserBean user=UserBean) session.getAttribute("user");
BookBean book = newBookBean();
book.setName(request.getParameter("name"));
book.setSex(request.getParameter("sex"));
book.setPhone(request.getParameter("phone"));
book.setHomeAddr(request.getParameter("homeAddr"));
book.setMobilephone( request.getParameter("mobilePhone"));
book.setEmail(request.getParameter("email"));
book.setCompany(request.getParameter("company"));
book.setComAddr(request.getParameter("comAddr"));
book.setRelation(Integer.
parseInt
( request.getParameter("relation")));
book.setUserID(user.getId());
returnbook;
}
“doPost”函数:
String type = request.getParameter("type");
Intresult = 0;
BookdbManager bookMng = newBookdbManager();
if(type.equals("del"))
{
intbookId = Integer.parseInt
( request.getParameter("BookId"));
result = bookMng.deleteBookById(bookId);
}
else
if(type.equals("add"))
{ BookBean book = makeBook(request);
result = bookMng.addBook(book); }
else
if(type.equals("update"))
{int
bookId = Integer.
parseInt
(request.getParameter("bookId"));
BookBean book = makeBook(request);
result = bookMng.updateBook(book, bookId);
}
if
(result == 0)
{request.getRequestDispatcher("error.jsp").forward(request, response);
}
else
{
request.getRequestDispatcher("DisplayServlet") .forward(request,response);
}
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的学习,这段时间,对这个网络通讯录的基本掌握,经过测试,可以使用。
通过这次实习过程,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 网络程序设计 课程设计