JSP网络程序设计课程设计.docx

上传人:b****2 文档编号:17266114 上传时间:2023-07-23 格式:DOCX 页数:21 大小:1.43MB
下载 相关 举报
JSP网络程序设计课程设计.docx_第1页
第1页 / 共21页
JSP网络程序设计课程设计.docx_第2页
第2页 / 共21页
JSP网络程序设计课程设计.docx_第3页
第3页 / 共21页
JSP网络程序设计课程设计.docx_第4页
第4页 / 共21页
JSP网络程序设计课程设计.docx_第5页
第5页 / 共21页
JSP网络程序设计课程设计.docx_第6页
第6页 / 共21页
JSP网络程序设计课程设计.docx_第7页
第7页 / 共21页
JSP网络程序设计课程设计.docx_第8页
第8页 / 共21页
JSP网络程序设计课程设计.docx_第9页
第9页 / 共21页
JSP网络程序设计课程设计.docx_第10页
第10页 / 共21页
JSP网络程序设计课程设计.docx_第11页
第11页 / 共21页
JSP网络程序设计课程设计.docx_第12页
第12页 / 共21页
JSP网络程序设计课程设计.docx_第13页
第13页 / 共21页
JSP网络程序设计课程设计.docx_第14页
第14页 / 共21页
JSP网络程序设计课程设计.docx_第15页
第15页 / 共21页
JSP网络程序设计课程设计.docx_第16页
第16页 / 共21页
JSP网络程序设计课程设计.docx_第17页
第17页 / 共21页
JSP网络程序设计课程设计.docx_第18页
第18页 / 共21页
JSP网络程序设计课程设计.docx_第19页
第19页 / 共21页
JSP网络程序设计课程设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JSP网络程序设计课程设计.docx

《JSP网络程序设计课程设计.docx》由会员分享,可在线阅读,更多相关《JSP网络程序设计课程设计.docx(21页珍藏版)》请在冰点文库上搜索。

JSP网络程序设计课程设计.docx

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的学习,这段时间,对这个网络通讯录的基本掌握,经过测试,可以使用。

通过这次实习过程,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2