jsp实现通讯录系统

合集下载

基于JSP网络通讯录设计文档

基于JSP网络通讯录设计文档

JSP网络通讯录设计课题名称基于JSP技术的网络通讯录院系专业班级学号学生姓名指导教师:2011 年 6 月 18日摘要随着科技日新月异,各种通讯方式也越来越多,我们要记住所有人的通讯方式是不可能的。

而纸质或电子通讯录有记录不方便、易丢失、携带不方便等缺点。

网络通讯录则刚好弥补了这些缺点。

JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的先进动态网站。

它一Java技术为基础,又在许多方面做了改进,具有动态页面与静态页面分离、能够脱离硬件平台的束缚以及编译后运行等优点。

通过一个学期对JSP的学习,我对它有了一定的了解,所以使用JSP作为这次Web程序设计的前台实现语言本课程设计通过使用JSP实现了一个简单的网络通讯录。

采用MVC模式实现各个模块。

用户在通过登陆验证之后,可对通讯录添加联系人,或对已有联系人进行查找、删除操作。

目录目录 (2)1.Java Web 应用背景介绍 (3)1.1 什么是Web编程 (3)1.2 JSP简介 (3)1.3 JSP的优点 (3)1.3.1 跨平台运行 (3)1.3.2 执行效率高 (3)1.3.3 服务器端组件支持 (4)1.3.4 数据库支持 (4)2. 网络通讯录的实现 (4)2.1 需求分析 (4)2.2在线通讯录的实体类设计 (4)2.3在线通讯录的功能 (5)2.4在线通讯录MVC模式设计 (5)2.5 各阶段具体实现过程 (6)2.5.1 用户登录的实现 (6)2.5.2 通讯录名片的插入操作 (6)2.5.3通讯录名片的查看操作 (7)2.5.4通讯录名片的删除操作 (8)2.5.5通讯录名片的分类查询操作 (8)3. 个人总结 (9)1.Java Web 应用背景介绍WWW是目前Internet上的主要服务类型之一,WWW的基础是基于HTML的页面,使用在HTML基础上的脚本语言进行应用程序开发,可以创建动态生成内容的Web页面。

基于JSP的通讯录管理系统

基于JSP的通讯录管理系统

《网络编程(JSP)》课程大作业报告项目名称:基于JSP技术设计与实现的通讯录管理系统专业名称:班级名称:小组成员:完成时间:2019年6月2018-2019学年2学期目录1.概述 (3)1.1项目背景 (3)1.2研究的主要内容 (3)1.3项目分工(说明各小组成员在项目中承担的工作) (3)2.相关技术 (3)3.系统分析 (4)4.系统设计 (4)4.1功能模块的流程说明 (4)4.2数据库设计 (5)5.系统实现 (6)5.1系统注册页面设计 (7)5.2系统登录页面设计 (7)5.3主页面设计 (7)5.4添加联系人页面设计 (7)5.5联系人管理界面设计 (7)5.6修改联系人界面设计 (7)5.7退出系统 (7)6.总结 (8)1.概述1.1 项目背景JSP是微软公司的重要产品之一, 是一种功能强大行之有效的可视化编程工,使用户可以方便的开发自己想实现的功能,JSP的功能特点。

JSP技术使用JA V A编程语言编写类XML 的tags和scriptlets,来封装产生动态网页的处理逻辑。

网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。

JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

本通讯录信息管理系统用计算机正是基于jsp技术的一种应用程序,它方便了用户对朋友们信息的储存和快速查阅的功能,大大减少了查找过程时间,在轻松快捷中沟通你我。

1.2 研究的主要内容(1)登录与注册系统的登录和注册功能。

(2)基本信息管理模块系统中对基本信息的管理包括:个人的姓名、性别、电话号码等。

(3)系统操作添加、修改、删除、查询、修改密码、退出系统。

1.3 项目分工:1.联系人信息修改模块;2.联系人信息删除模块;3.课程大作业报告:1.联系人信息添加模块;2.页面设计:1.密码修改模块;2.课程大作业报告:1.注册模块;2.登录模块2.相关技术①JSP以及Servlet的基本知识;②原生JDBC实现数据库的增删改查;③HTML基本知识以及H5最新属性的使用;④Foundation框架的使用;⑤TOMCAT 目录结构;⑥通过对数据库的基本操作实现用户注册、登录模块、显示模块、查询模块、添加模块和删除模块;⑦ 利用JavaBean技术实现数据封装。

基于互联网的手机通讯录的研究与实现

基于互联网的手机通讯录的研究与实现

基于互联网的手机通讯录的研究与实现林俊存;张华;谭伟【摘要】本系统采用Eclipse+Android+sdk+Cordova集成开发环境,运用Java 语言编程,使得用户只需通过手机浏览器就能实现任何时间,任何地方,任何手机拨打您所急需的联系人,一般使用时不需要下载任何手机app,主要解决了手机丢失,手机不在,手机关机等各种情况下需要对联系人进行及时的拨打,新建或者分享他人等需求.及解决了我们对手机客户端的依赖及手机系统的跨平台性,是一个面向所有用户的WebApp网页软件,使我们对联系人的获取及其他功能的操作变得更简单,更实用,更及时.【期刊名称】《电子世界》【年(卷),期】2016(000)023【总页数】2页(P9-10)【关键词】SSH整合;Cordova;JAVA语言;手机通讯录;移动互联网【作者】林俊存;张华;谭伟【作者单位】湖北民族学院信息工程学院;湖北民族学院信息工程学院;湖北民族学院信息工程学院【正文语种】中文如今在互联网技术的带动下,大数据及云端技术得到了快速发展,而手机面向这种技术将成为手机科技发展的必定趋势,手机是人们在生活中必不可少的工具,其设计的最初目的与最为重要的功能是为了方便联系。

我们不得不承认百度云盘的出现是一件多么美妙的事,但我们并不想下载手机客户端来存放我们的联系人,在某种情况下它是没有多大意义的。

近几年来,随着移动通信智能终端的普及和通信终端功能的不断增强,用户已经可以随时随地使用移动终端登录和访问互联网上的各种社区网站;另外,移动通信终端都存储有通讯录,现在大部分基于手机通讯录的应用也主要是针对因用户手机丢失而引起用户信息损失的通讯录备份功能,完全忽视了通讯录所代表和隐藏的潜在的社会网络关系。

手机通讯录可以说是我们手机中最重要的应用功能之一,特别是我们在更换手机的时候,首先要做的就是把旧手机上面的联系人更新到新手机上面去,以前碰到这个问题我们可能用得最多的是通过复制到SIM卡,再从SIM卡复制到新手机的方式,但是这个方法往往会受到数量以及新旧手机联系人不兼容的问题,并且最重要的是这个方法很慢。

基于jsp的通讯录管理系统

基于jsp的通讯录管理系统

摘要电子商务(Electronic Commerce)是最近网络上的新技术。

利用微端口实现全部商务(买卖)过程中的电子化、微端化和网络化。

跟随着这项技术的法杖,给我们在生活中带来了巨大的方便,并慢慢改变我们的旧习惯,形成新的生活方式.在中国在线购物平台大多数都是用的ASP,PHP两种技术所完成的,而基于JSP的购物网站相对来说则并不多。

该论文仔细地描述了本系统需求分析、总体设计、详细设计还有各个模块的设计理念以及实现过程,主要实现了以下模块功能:VIP注册模块、登录/注销模块;用户管理管理模块;浏览书籍总体信息模块;书籍检索模块;书籍管理模块;购物车模块;订单模块;订单管理模块等等。

关键词书籍;线上销售;订单处理(删除,添加,修改);目录摘要 (I)Abstract ...................................... 错误!未定义书签。

第1章绪论 (1)1.1课题背景 (1)1.2目的和意义 (1)1.3系统设计思想 (2)1.4本文的结构.......................... 错误!未定义书签。

第2章可行性分析 (3)2.1 经济可行性 (3)2.2 技术可行性 (3)2.3 运行可行性 (3)2.5 本章小结 ............................... 错误!未定义书签。

第3章需求分析 .. (4)3.1网上书店需求分析 (4)3.2本章小结 (4)第4章总体设计 (5)4.1系统模块总体设计 (5)4.2数据库设计 (6)4.2.1数据分析 (6)4.2.2数据库的详细设计 (8)4.3本章小结 (11)第5章详细设计与实现 (12)5.1系统运行平台设置 (12)5.2运行环境 (12)5.3开发工具及技术简介 (12)5.3.1开发工具简介..................... 错误!未定义书签。

5.3.2技术简介......................... 错误!未定义书签。

java课程设计(通讯录管理系统)

java课程设计(通讯录管理系统)

掌握Java语言基础
理解面向对象编程思 想
掌握数据库操作技术
提高团队协作和沟通 能力
完成一个实用的通讯 录管理系统
联系人管理:添加、删除、修改、查询联系人信息 联系人分组:创建、删除、修改、查询联系人分组 联系人搜索:根据姓名、电话、邮箱等信息进行搜索 联系人导出:将联系人信息导出为Excel、CSV等格式的文件 联系人导入:从Excel、CSV等格式的文件中导入联系人信息 系统设置:修改系统语言、主题、字体等设置
数据库类型:MySQL
数据库表结构:用户表、 联系人表、分组表等
主键和外键:用户ID、联 系人ID、分组ID等
数据库操作:增删改查等 基本操作
数据库优化:索引、缓存、 分表等优化措施
数据库安全:用户权限管 理、数据加密等安全措施
界面布局:简洁 明了,易于操作
色彩搭配:协调 统一,易于阅读
功能模块:联系 人管理、分组管 理、搜索功能等
汇报人:
添加标题
添加标题
查询方式:支持模糊查询和精确查 询
查询优化:使用索引提高查询效率
功能描述:删除指定联系人信 息
实现方法:调用数据库删除接 口
操作步骤:选择联系人,点击 删除按钮,确认删除
注意事项:确保删除操作不会 影响其他数据完整性
添加联系人:输入姓名、电话、邮箱等信 息
修改联系人:修改姓名、电话、邮箱等信 息
删除联系人:删除指定联系人
查询联系人:根据姓名、电话、邮箱等信 息进行查询
导出联系人:将联系人信息导出为Excel 或CSV文件
导入联系人:将Excel或CSV文件中的联系 人信息导入到系统中
修改模块界面:提供用户友 好的界面,方便用户操作

Java实现简单通讯录管理系统

Java实现简单通讯录管理系统

Java实现简单通讯录管理系统本⽂实例为⼤家分享了Java实现通讯录管理系统的具体代码,供⼤家参考,具体内容如下题⽬:1、完成⼀个通讯录,需求:(1)添加联系⼈(联系⼈:编号,姓名,⼿机号,QQ,邮箱地址)添加时需要检查⼿机号和邮箱地址格式是否正确,若不正确,不允许添加(2)联系⼈查询(输⼊姓名或电话查询)(3)显⽰联系⼈列表(4)根据编号删除指定编号的联系⼈代码分析:之前写过类似的管理系统,不过是使⽤数组进⾏数据存储,这次的通讯录管理系统通过动态数组ArrayList进⾏数据存储。

其中代码实现的原理和之前所写相似。

在此不再赘述。

判断⼿机号邮箱地址格式是否格式正确使⽤了正则表达式进⾏判断,如果输⼊错误则输出提⽰语句,并重新输⼊正确格式,递归实现。

其中修改⼿机号的⽅法和删除⽤户类似,顺带写了⼀下,没有进⾏实现,感兴趣的朋友可以⾃⼰进⾏实现测试⼀下。

代码实现:⽤户类:package com.softeem.j2106.work;/*** @author admin* 2021/7/26*/public class User {private int no;private String name;private String phone;private String QQ;private String email;public User() {}public User(int no, String name, String phone, String QQ, String email) {this.no = no; = name;this.phone = phone;this.QQ = QQ;this.email = email;}public int getNo() {return no;}public void setNo(int no) {this.no = no;}public String getName() {return name;}public void setName(String name) { = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getQQ() {return QQ;}public void setQQ(String QQ) {this.QQ = QQ;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"no=" + no +", name='" + name + '\'' +", phone='" + phone + '\'' +", QQ='" + QQ + '\'' +", email='" + email + '\'' +'}';}}⽤户管理类:public class UserMange {static ArrayList<User> s = new ArrayList<>();public boolean addUser(User user){return s.add(user);}public ArrayList showInfo(){return s;}public User searchByName(String name){for (User user : s) {if (Objects.equals(name,user.getName()) ||Objects.equals(name,user.getPhone())){ return user;}}return null;}public boolean updatePhone(int no,String phone){User user = null;for(User u:s) {if(no == u.getNo()) {u.setPhone(phone);break;}}if(user == null) {System.out.println("该⽤户不存在");return false;}System.out.println("修改成功!");return true;}public boolean delUser(int no){User user = null;for(User u:s) {if(no == u.getNo()) {user = u;break;}}if(user == null) {System.out.println("该⽤户不存在");return false;}return s.remove(user);}}测试类:public class Test2 {static UserMange user = new UserMange();static Scanner sc = new Scanner(System.in);public static void start(){System.out.println("=======SOFTEEM通讯录管理系统=====");System.out.println("【1】添加联系⼈");System.out.println("【2】联系⼈查询");System.out.println("【3】显⽰联系⼈列表");System.out.println("【4】根据编号删除指定编号的联系⼈");System.out.println("=============================");int i = sc.nextInt();switch (i){case 1:add();start();break;case 2:System.out.println("【1】通过联系⼈姓名查询/【2】通过联系⼈电话查询"); int a = sc.nextInt();findbyName(a);start();break;case 3:show();start();break;case 4:del();start();break;case 0:System.out.println("谢谢使⽤,再见!");System.exit(0);break;default:System.out.println("请输⼊正确的指令!");start();break;}}public static void add(){System.out.println("请输⼊联系⼈编号:");int a = sc.nextInt();System.out.println("请输⼊联系⼈姓名:");String b = sc.next();System.out.println("请输⼊联系⼈⼿机号:");String c = sc.next();judgePhone(c);System.out.println("请输⼊联系⼈QQ:");String d = sc.next();System.out.println("请输⼊联系⼈邮箱地址:");String e = sc.next();judgeEmail(e);User x = new User(a,b,c,d,e);if(user.addUser(x)){System.out.println("添加成功!");}}public static void judgePhone(String phone){if (phone.matches("1[34589][0-9]{9}")){}else {System.out.println("⼿机号输⼊有误,请重新输⼊");String v = sc.next();judgePhone(v);}}public static void judgeEmail(String email){if (email.matches("[A-Za-z0-9]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)")){}else {System.out.println("邮箱格式输⼊有误,请重新输⼊");String v = sc.next();judgeEmail(v);}}public static void findbyName(int a){if (a==1){System.out.println("请输⼊联系⼈姓名");}else {System.out.println("请输⼊联系⼈电话");}String name = sc.next();User user = er.searchByName(name);System.out.println(user);}public static void show(){ArrayList list = user.showInfo();for (Object o : list) {System.out.println(o);}}public static void del(){System.out.println("请输⼊编号");int no = sc.nextInt();if(user.delUser(no)){System.out.println("删除成功");}}public static void main(String[] args) {start();}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

web通讯录系统课程设计

web通讯录系统课程设计

web通讯录系统课程设计一、课程目标知识目标:1. 让学生掌握Web通讯录系统的基本原理和概念,了解其在现实生活中的应用;2. 学会使用HTML、CSS和JavaScript等前端技术构建简单的通讯录界面;3. 掌握使用后端技术(如PHP、Python等)实现通讯录数据的增删改查功能;4. 了解Web数据库的基本操作,能够将通讯录数据存储在数据库中。

技能目标:1. 培养学生独立设计和开发Web通讯录系统的能力;2. 提高学生解决问题的能力,能够根据需求分析和设计合适的通讯录功能;3. 培养学生团队协作和沟通能力,能够在项目中与他人共同完成任务;4. 提升学生运用现代信息技术手段,将所学知识应用于实际项目中的能力。

情感态度价值观目标:1. 培养学生对编程和Web开发的兴趣,激发其自主学习热情;2. 培养学生认真负责的工作态度,养成良好的编程习惯;3. 增强学生的信息安全意识,使其意识到保护用户隐私和数据安全的重要性;4. 培养学生具备创新精神和实践能力,鼓励他们将所学知识应用到实际生活中。

课程性质:本课程为实践性较强的课程,旨在培养学生的编程能力和项目实践能力。

学生特点:学生具备一定的计算机基础,对Web开发有一定了解,但实际操作能力较弱。

教学要求:结合课程目标和学生学习特点,采用任务驱动、案例教学等方法,注重实践操作,提高学生动手能力。

同时,关注学生个体差异,给予个性化指导,确保每位学生都能达到课程目标。

在教学过程中,注重分解课程目标为具体的学习成果,以便于教学设计和评估。

二、教学内容1. Web通讯录系统概述- 了解Web通讯录系统的基本概念和应用场景。

- 分析Web通讯录系统的功能需求和关键技术。

2. 前端技术基础- HTML:学习构建通讯录界面的基本标签和结构。

- CSS:掌握样式表的使用,美化通讯录界面。

- JavaScript:学习使用JavaScript实现通讯录的动态交互效果。

3. 后端技术实现- 服务器端编程语言:学习使用PHP、Python等语言编写后端逻辑。

web软件设计——通讯录系统

web软件设计——通讯录系统

w e b软件设计——通讯录系统(总6页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验项目名称:WEB软件综合设计实验目的:熟练实现小型WEB软件系统。

实验内容:用PHP+Mysql实现一小型WEB软件系统(通讯录系统)。

报告内容:(1)界面(2)代码<title>添加记录-表单</title></head><body><form action="" method="post"><table width="300" border="0" align="center" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><div align="center">添加通讯录</div></td></tr><tr><td width="76"><div align="right">学号</div></td><td width="224"><input type="text" name="stu_no"/></td></tr><tr><td><div align="right">姓名</div></td><td><input type="text" name="stu_name"/></td></tr><tr><td><div align="right">性别</div></td><td>男<input name="gender" type="radio" value="男" checked />女<input name="gender" type="radio" value="女" /></td></tr><tr><td><div align="right">生日</div></td><td><input type="text" name="birthdate"/></td></tr><tr><td><div align="right">电话</div></td><td><input type="text" name="telephone"/></td></tr><tr><td><div align="right">邮箱</div></td><td><input type="text" name="email"/></td></tr><tr><td colspan="2"><div align="center"><input name="submit" type="submit" value="提交" /> <input name="reset" type="reset" value="重置" /></div></td></tr></table></form></body><title>获得表单数据,并保存到数据库表当中</title></head><body><php$stu_no=$_POST["stu_no"];$stu_name=$_POST["stu_name"];$gender=$_POST["gender"];$birthdate=$_POST["birthdate"];$telephone=$_POST["telephone"];$email=$_POST["email"];echo $stu_no;echo '</br>';echo $stu_name;echo '</br>';echo $gender;echo '</br>';echo $birthdate;echo '</br>';echo $email;echo '</br>';row[0]."</td>";echo "<td>".$row[1]."</td>";echo "<td>".$row[2]."</td>";echo "<td>".$row[3]."</td>";echo "<td>".$row[4]."</td>";echo "<td>".$row[5]."</td>";$stu_no=$row[0];echo "<td><a href='stu_no=$stu_no'>修改</a></td>";echo "<td><a href=javascript:if(confirm('确认要删除吗'))location='stu_no=$stu_no'>删除</a></td>";echo "</tr >";}></body><title>修改记录-表单</title></head><body><php$conn=@mysql_connect("localhost","root","111111") or die("数据库连接失败"); $opendb=mysql_select_db("mydb",$conn) or die("数据库打开失败");mysql_query("set names gbk");$stu_no=$_GET["stu_no"];$sql="select * from student where stu_no='$stu_no'";$result=mysql_query($sql) or die ("数据查询失败");$row=mysql_fetch_assoc($result);//print_r($row);><form action="" method="POST"><table width="300" border="0" align="center" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><div align="center">修改通讯录</div></td></tr><tr><td width="76"><div align="right">学号</div></td><td width="224"><input type="text" name="stu_no" value="<php echo$row['stu_no'] >"readonly="true"/></td></tr><tr><td><div align="right">姓名</div></td><td><input type="text" name="stu_name" value="<php echo$row['stu_name'] >"/></td></tr><tr><td><div align="right">性别</div></td><td>男<input name="gender" type="radio" value="男" checked />女<input name="gender" type="radio" value="女" /></td></tr><tr><td><div align="right">生日</div></td><td><input type="text" name="birthdate" value="<php echo$row['birthdate'] >"/></td></tr><tr><td><div align="right">电话</div></td><td><input type="text" name="telephone" value="<php echo$row['telephone'] >"/></td></tr><tr><td><div align="right">邮箱</div></td><td><input type="text" name="email" value="<php echo $row['email'] >"/></td> </tr><tr><td colspan="2"><div align="center"><input name="submit" type="submit" value="提交" /><input name="reset" type="reset" value="重置" /></div></td></tr></table></form></body><title>修改表单数据,并保存到数据库表当中</title></head><body><php$stu_no=$_POST["stu_no"];$stu_name=$_POST["stu_name"];$gender=$_POST["gender"];$birthdate=$_POST["birthdate"];$telephone=$_POST["telephone"];$email=$_POST["email"];echo $stu_no;echo '</br>';echo $stu_name;echo '</br>';echo $gender;echo '</br>';echo $birthdate;echo '</br>';echo $email;echo '</br>';//把数据插入到数据表中$conn=@mysql_connect("localhost","root","111111") or die("数据库连接失败"); $opendb=mysql_select_db("mydb",$conn) or die("数据库打开失败");mysql_query("set names gbk");$sql="update student setstu_name='$stu_name',gender='$gender',birthdate='$birthdate',telephone='$telepho ne',email='$email'where stu_no='$stu_no'";$result=mysql_query($sql);if($result)echo"修改成功";elseecho"修改失败";header("Location:");></body><title>修改表单数据,并保存到数据库表当中</title></head><body><php$stu_no=$_GET["stu_no"];//从数据库中删除$conn=@mysql_connect("localhost","root","111111") or die("数据库连接失败"); $opendb=mysql_select_db("mydb",$conn) or die("数据库打开失败");mysql_query("set names gbk");$sql="delete from student where stu_no='$stu_no'";$result=mysql_query($sql) or die ("删除失败");header("Location:");></body>。

J2EE、JSP通讯录管理系统设计报告(副完整的程序)

J2EE、JSP通讯录管理系统设计报告(副完整的程序)

信息与电气工程学院通讯录管理系统专业班级:计算机1401学生姓名:陶浩伟学号:140210124指导教师:黄伟建、吴迪设计成绩:2016年6月20日文献综述 .................................................................................................................... 错误!未定义书签。

第一章引言 .. (2)1.1通讯录的现状和背景 (3)第二章开发技术及技术 (3)2.1开发技术 (3)2.1.1 MVC (3)2.1.2 JDK (3)2.1.3 SWING (4)2.1.4 Java (4)2.2开发工具 (4)2.1.1 MyElipse (5)2.1.2 MySQL及 (5)2.1.3 Navicat for MySQL (5)第三章系统的需求分析 (6)3.1系统功能分析 (6)3.2.1 用户登录模块 (7)3.1.1 联系人信息维护模块 (7)3.1.2 查找联系人 (7)3.1.3 用户信息维护 (7)3.2系统用例分析 (7)3.2.2 参与者分析 (7)3.2.3 系统主用例识别 (8)3.2.4 系统子用例识别 (8)3.3数据库分析 (9)3.3.1 概念结构设计 (9)3.3.2 逻辑结构设计 (10)第四章系统实现 (11)第五章总结 (13)文献总结 (12)通讯录管理系统的设计与实现摘要:随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须经常与亲戚、朋友、同学、同事保持联系,但是有时候存在着许多的限制条件,比如怎样找到交流对象的各种信息?可能你会想到现实生活中的手机等通讯工具,由于这些工具的单一性,不可能在第一时间找到自己想要的信息资料,因此,为了能够快速查找到联系人的信息,节省查找时间,开发通讯录管理系统。

通讯录管理系统是一个基于C/S模式的个人通讯录管理系统。

jsp个人通信录系统课程设计

jsp个人通信录系统课程设计

《 JSP实现的个人通讯录治理系统》课程设计指导书一、课程设计的目的:学习用JSP 实现一个小型系统,学习利用JSP中的重要技术,包括Java Bean 和Java Severlet,和连接数据源问题。

同时,要通过设计本小型系统,了解软件开发的大体理念与要求。

二、设计名称:JSP实现的个人通信录治理系统三、设计要求:个人通信录治理系统由JSP实现,第一通过用户名和密码登录本系统,其中用户名和密码保留在数据库中。

本系统的大体功能包括:查看我的通信录,内容包括号码和email,在查看我的通信录功能中要实现分页显示功能,幸免往后利用中通信录资料过量,不容易显示;查询功能,依照姓名查询相应的和email,添加人员和删除人员。

四、设计进程一、第一,依照软件开发的大体要求,不管所开发的系统获软件何等小,必然要做好需求分析和整体设计、详细设计等进程,才能够着手实现系统。

关于本系统,个人通信录治理系统,就我个人明白得,尽管它的有效性已经不是很强,可是我的设计方式是尽可能完善其功能并做到精小,能够结合嵌入式思想,将其嵌入电话、MP3等数码产品。

二、编写源代码。

3、安装sun公司的JDK (可到免费下载)JDK安装完成后,需要进行几个环境变量的设置.关于Windows2000/XP,右键单击“我的电脑”,选择“属性”,弹出“系统特性”对话框,选择“高级”选项卡,单击[环境变量]按钮,别离添加如下系统环境变量:变量名:classpath,变量值:D:\\jre\lib\;.;(依照自己JDK的安装途径去写)变量名:path,变量值:D:\\bin;4第二安装JSP引擎---比如普遍利用的Tomcat效劳器(可到免费下载)5.正确安装完成后,到Tomcat的安装目录下(如C:\Program Files\Tomcat \bin)启动Tomcat效劳器。

方式是:双击,该窗口一直维持打开状态;或双击,点击start来启动Tomcat效劳器。

jsp联系人课程设计

jsp联系人课程设计

jsp联系人课程设计一、课程目标知识目标:1. 掌握JSP(Java Server Pages)基本语法和常用指令,并能运用到实际的联系人管理系统开发中;2. 理解JavaBean的概念,学会使用JavaBean进行数据处理;3. 学会使用JDBC(Java Database Connectivity)连接数据库,实现对联系人信息的增、删、改、查操作;4. 了解Web应用的分层设计,掌握MVC(Model-View-Controller)架构在联系人管理系统中的应用。

技能目标:1. 能够独立设计并实现一个简单的联系人管理系统,包括用户界面、业务逻辑和数据库操作;2. 能够运用所学知识解决实际编程中遇到的问题,如调试代码、优化性能等;3. 能够运用网络搜索、查阅资料等方式,自主学习JSP相关技术,提高解决问题的能力。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们主动探索新技术的热情;2. 培养学生的团队合作精神,让他们在项目开发过程中学会相互支持、共同进步;3. 培养学生的实际操作能力,使他们认识到技术是为解决实际问题服务的,提高他们的社会责任感。

课程性质:本课程属于实践性较强的课程,要求学生在掌握JSP基本知识的基础上,结合数据库技术,独立设计并实现一个联系人管理系统。

学生特点:学生具备一定的Java基础和Web开发知识,对JSP技术有一定了解,但实际操作经验不足。

教学要求:注重理论与实践相结合,引导学生通过实际项目开发,掌握JSP技术及其在联系人管理系统中的应用。

同时,关注学生的情感态度价值观培养,提高他们的综合素养。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. JSP基本语法与指令:介绍JSP页面的基本结构,重点讲解JSP脚本元素、指令、标准动作等,结合课本章节进行实例分析。

教材章节:第一章 JSP概述,第二章 JSP基本语法与指令2. JavaBean的使用:讲解JavaBean的概念、作用和生命周期,通过实例演示如何创建、配置和使用JavaBean。

基于ExtJS的毕业生通讯录管理系统的设计与实现

基于ExtJS的毕业生通讯录管理系统的设计与实现

n wI s a c e t n e0 : n
COnn
目录 。e t a . s a a t r e t e t x — 1j 口 d p e / x / x I


Dri ver an g . M a er
b s . s已经 包含 了 E t S的所 有功 能 , ae j xJ 所有 的 J v S r a a c t脚本 都在 这里 ; i p b d o al / x —I n — h O . s是简 体 中文国际 化 ui /l c e t g z I e a Nj 资源 文件 ;e o re r s u c s目录 下是 C S样式 表和 图片 。在 S
使 用 E t S框 架必 须至 少在页 面 中引入 : xJ
e t aI . s a a t r e t e t b s . s x — I j 、 d p e / x / × — a e j 、
b I /lc / x —ln — h C . s年 整 个 r s u c s uid aJ e t g z o e a Nj 口 e o r e
理 系统 分 为访 客页面 、学生 页面 、管理 员 页面 三个 模 块 。管 理 员即超 级用 户 , 可查 看所 有 信息 、 添加所 有 信
息 、 改 所 有信 息 ; 修 学生 可 查 看 别 人 的信 息 , 只 能修 但
能方便 、 时找 到原 来 的老 同学 , 及 如果把 同学之 间 的通 讯方 式记 录在 一个通 讯 簿上 , 当通讯地 址 变更 时 就不
3 0
Hale Waihona Puke S s n g me t 系统 管理 y Ma a e n
ty { r ty { r

jsp--网络即时通讯系统

jsp--网络即时通讯系统
关键字:网络 Eclipse 开发工具 标准
I
Network Communication System
ABSTRACT
The network chats the tool to be possible for the company, enterprise's internal exchange day use, both has used the network resources fully, and guarantee interior information security. This chats the tool is composed by the server end procedure and the client side procedure two parts, the whole uses the java platform development. Uses C/S model, the server end listens attentively to the client side the request, thus carries on corresponding processing according to the client side request, then is returning to the result the client side.
1.1 ECLIPSE 简介....................................................1 1.2 ECLIPSE 项目....................................................2 1.3 ECLIPSE 平台....................................................2

基于JAVA的通讯录管理系统的设计与实现的开题报告

基于JAVA的通讯录管理系统的设计与实现的开题报告

基于JAVA的通讯录管理系统的设计与实现的开题报告一、研究背景随着信息化时代的到来,在日常生活中,我们需要管理和维护大量的联系人信息,如客户、供应商、朋友、同事等等,以便于及时沟通和协作。

因此,通讯录管理系统成为了一个非常有意义的软件系统。

目前,通讯录管理系统已经被广泛应用于各行各业。

例如,在家庭中,可以使用通讯录管理系统来管理亲属或朋友的联系信息,以便于随时联系;在企业中,可以使用通讯录管理系统来管理客户、供应商、员工等联系人的信息,以便于协同工作。

二、研究意义本研究的设计和实现基于JAVA语言,目的是开发出一个通用的通讯录管理系统,它可以在不同的操作系统和计算机设备上运行,便于用户随时随地管理和维护自己的联系人信息。

此外,本研究将介绍一种基于对象关系映射(ORM)的设计方法,可以简化数据表的设计和操作,提高程序的可维护性和扩展性。

三、研究内容本研究主要包括以下内容:1. 系统需求分析:分析用户需求,明确系统功能和性能要求。

2. 数据库设计和实现:使用关系型数据库(如MySQL)设计和实现系统数据表,使用ORM框架(如Hibernate)简化数据表操作。

3. 系统功能实现:使用JAVA GUI框架(如Swing)实现系统UI界面,使用JAVA EE框架(如Spring MVC)实现系统控制器和服务层,实现系统基本功能,包括添加联系人、编辑联系人、删除联系人、查询联系人等。

4. 系统性能测试和优化:针对系统的瓶颈问题进行性能测试和优化,提高系统的响应速度和稳定性。

四、研究方法本研究将采用如下研究方法:1. 系统需求分析:采用面向对象的分析方法,使用UML建模工具进行系统建模,明确系统功能和性能要求。

2. 数据库设计和实现:根据需求分析结果,采用ER模型设计数据表,使用MySQL实现数据表,使用Hibernate简化数据表操作,提高程序的可维护性和扩展性。

3. 系统功能实现:采用JAVA GUI框架(如Swing)实现系统UI界面,采用JAVA EE框架(如Spring MVC)实现系统控制器和服务层,实现系统基本功能。

jsp实现通讯录系统[1]

jsp实现通讯录系统[1]

个人通信录管理系统计算机学院2008级2班张俊发学号:20082101032 1 需求分析由于纸制或电子形式的通讯录,携带不方便,或容易忘记等方面的缺点,所以要开发一个网络通讯录,方便用户提供使用:1.用户注册、登录功能2.登录后,显示出与当前用户相关的联系人名单3.添加新联系人4.删除联系人5.根据联系人类型查找联系人信息根据以上要求,开发一个网络通讯录。

2 数据库实现过程创建在线通讯录数据库、表,数据库名为:addressBook。

数据表为:USERS、BOOK.实现代码如下:User表:Book表:SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `book`-- ----------------------------DROP TABLE IF EXISTS `book`;CREATE TABLE `book` (`bookID` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) CHARACTER SET utf8 DEFAULT NULL,`sex` char(2) CHARACTER SET utf8 DEFAULT NULL,`phone` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `homeAddr` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `mobilePhone` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `email` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `company` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `comAddr` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `relation` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `userID` int(11) NOT NULL, PRIMARY KEY (`bookID`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;-- ---------------------------- -- Table structure for `user` -- ----------------------------DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (`userID` int(11) NOT NULL AUTO_INCREMENT,`userName` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `password` varchar(50) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (`userID`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;3在线通讯录的实体类设计用户类:UserBean.java 通讯录类:BookBean.java4在线通讯录的功能● 用户登录验证 ● 添加新联系人 ● 删除联系人信息 ● 查找所有联系人●按照类别查找联系人实体类数据库表UserBean.jav a BookBean.javaUserbook对应关属性对应字段5在线通讯录MVC 模式设计模型(Model)——就是业务流程/状态的处理以及业务规则的制定。

Java课程设计个人通讯录管理系统

Java课程设计个人通讯录管理系统

功能描述:用户 可以添加新的联 系人信息
界面设计:简洁 明了,易于操作
数据存储:将新添 加的联系人信息存 储到数据库中
PART FOUR
使用JDBC(Java Database Connectivity) 技术进行数据库连接
连接数据库需要提供数据库URL、用户名、 密码等信息
使用Connection对象建立与数据库的连 接
性能优化: 采用索引、 缓存等技 术提高查 询效率
用户界面: 设计简洁、 易于使用 的查询界 面,方便 用户操作
操作流程:选择联系人,点 击删除按钮,确认删除
功能描述:删除指定联系人 信息
异常处理:删除失败时,提 示用户并重新尝试
数据库操作:删除联系人信 息,更新数据库记录
模块名称:添加 联系人
使用Statement或PreparedStatement对象 执行SQL语句
使用ResultSet对象获取查询结果
关闭数据库连接,释放资源
主界面:显 示通讯录列 表,包括姓 名、电话、 地址等信息
编辑界面: 编辑联系人 信息,包括 姓名、电话、 地址等
搜索界面: 根据姓名、 电话等信息 进行搜索
PART SIX
项目目标:实现个人通讯录管理系统 技术栈:Java、数据库、前端框架等 项目成果:实现了联系人管理、信息查询、数据备份等功能 项目挑战:数据库设计、前端交互、性能优化等 项目经验:团队协作、需求分析、代码规范等 未来展望:继续优化系统、增加新功能、提高用户体验等
收获:掌握了Java语言和面向对象编程的基本知识,提高了编程能力 收获:学会了如何设计一个完整的系统,包括需求分析、系统设计、编码实现和测试等环节 不足:在系统设计中,对某些功能的实现不够完善,需要进一步改进 不足:在编码实现中,对某些算法的效率不够高,需要进一步优化

JAVA课程设计-通讯录管理系统

JAVA课程设计-通讯录管理系统

目录一、设计题目 (1)二、设计目的 (1)三、需求分析 (1)四、总体设计 (1)1.程序总体设计思想 (1)2.程序设计总体框图 (2)五、详细设计 (2)1.功能模块图 (3)2.数据库概念模型 (3)3.数据库逻辑结构设计 (4)4.数据库表的建立 (4)5. 数据库的连接 (4)六、算法描述与实现 (5)1.登录界面 (5)2.通讯记录界面 (7)3.修改联系人界面 (8)4.删除联系人界面 (9)5.添加联系人记录界面 (10)七、结论 (11)八、参考文献 (12)一、设计题目通讯录管理系统二、设计目的本课程设计是java语言学习中很重要的实践性环节之一,是在学习完java课程后进行的一次全面的综合练习旨在巩固和加深我们对java语言的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力。

三、需求分析通讯录要求实现最基本的功能,包括新建联系人,查找信息,删除信息,修改信息,退出系统,为此需要首先定义记录项的格式,其基本属性包括姓名、电话、地址、邮箱。

通讯录管理系统的主要包括以下功能:(1). 新建联系人:操作添加一条新的联系人。

(2). 查找信息:查出一条已经存在的联系人。

(3). 删除信息:删除一个联系人的信息。

(4). 修改信息:修改联系人的基本信息。

四、总体设计1.程序总体设计思想个人通讯录件的功能模块有:(1)提供登陆界面,方便用户进入,满足需求;(2)添加:可以添加通讯录记录,依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司、E-Mail地址、家庭住址、组别、备注后,会提示是否继续添加;(3)显示:可以以表格形式输出所有通讯录里的记录;(4)查询:可以用姓名查询;(5)修改:输入欲修改的那个人的名字后,再依次输入姓名、性别、出生日期、移动电话、固定电话、MSN/QQ、公司、E-Mail地址、家庭住址、组别、备注即可完成修改;(6)删除:可以直接删除多余的通讯录记录;(7)帮助:可以在帮助里面修改用户密码;(8)导出数据库:可以将数据库以文本txt格式导出。

JSP编程-班级通讯录

JSP编程-班级通讯录

实验报告学生姓名:学号:6100411 专业班级:计科班实验类型:□验证□综合□设计□创新实验日期:2014/11 实验成绩:实验二JSP编程-班级通讯录一、实验目的1、掌握JSP的基本语法;2、掌握JSP程序的基本处理流程;3、理解内置对象request,response,session等的用法。

4、掌握EL和JSTL的使用;5、掌握JDBC编程;6、理解JavaBean和Servlet的含义,掌握MVC编程方式。

二、实验要求1、首页用户登录,验证通过后,进入班级通讯录列表页;2、通讯录列表需按每页5条记录分页显示,并且允许对每条记录进行修改(学号不允许修改)和删除,该页还应提供到增加新同学页面的超链接;3、增加新同学的页面为表单页,可以考虑增加表单输入的有效性验证(非必须)。

注意:同一个学号的同学不应重复录入;4、要求本项目采用JSP Model2架构,即采用JSP+JavaBean+Servlet的编程方式;5、要求所创建项目名称为自己的学号后四位。

三、实验代码(1)登录代码(.jsp)loginForm.jsp<%@page language="java"pageEncoding="gb2312"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>通讯录登录</title></head><body><form action="loginConf.jsp"method="post">查看班级通讯录登录<table><tr><td colspan="2"><font color="red">${requestScope.error}</font></td> </tr><tr><td>用户名</td><td><input type="text"name="username"/></td></tr><tr><td>密码</td><td><input type="password"name="upassword"/></td></tr><tr><td><input type="submit"value="登录"></td><td><input type="reset"value="重置"/></td></tr></table></form></body></html>loginConf.jsp<%@page language="java"pageEncoding="gb2312"%><%@taglib prefix="c"uri="/jsp/jstl/core"%><html><head><title>登录判断页面</title></head><body><c:if test="${empty ername }"><%request.setAttribute("error","用户名不能为空,请输入用户名");%><jsp:forward page="loginForm.jsp"></jsp:forward></c:if><c:if test="${empty param.upassword }"><%request.setAttribute("error","密码不能为空,请输入密码");%><jsp:forward page="loginForm.jsp"></jsp:forward></c:if><c:choose><c:when test="${ername =='dsq'}"><c:if test="${param.upassword =='dsq'}"><jsp:forward page="ShowStudentByPage.jsp"></jsp:forward> </c:if><jsp:forward page="loginFailure.jsp"></jsp:forward></c:when><c:otherwise><jsp:forward page="loginFailure.jsp"></jsp:forward></c:otherwise></c:choose><%--StudentDAO studentDAO = StudentDAOFactory.getStudentDAOInstance();String user=request.getParameter("user");String Password=request.getParameter("Password");boolean flag=studentDAO.finduser(user,Password);if(flag){request.setAttribute("error","用户名或密码错误,请重新输入"); <jsp:forward page="loginFailure.jsp"></jsp:forward><%}else %><jsp:forward page="ShowStudentByPage.jsp"></jsp:forward> --%></body></html>loginFailure.jsp<%@page language="java"pageEncoding="gb2312"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>登录失败页面</title></head><body><h1>抱歉,登录失败!</h1><table><tr><td>是否重新登录:<a href="loginForm.jsp">是</a></td></tr><tr><td>若不登录,请关闭页面!</td></tr></table></body></html>(2)登录成功后的代码(.jsp)分页代码ShowStudentByPage.jsp<%@page language="java"pageEncoding="gb2312"import="java.util.List"%> <%@page import="com.songqing.dao.StudentDAO"%><%@page import="com.songqing.dao.StudentDAOImpl"%><%@taglib prefix="c"uri="/jsp/jstl/core"%><%@taglib prefix="fmt"uri="/jsp/jstl/fmt"%><%@page import="com.songqing.factory.StudentDAOFactory"%><%@page import="com.songqing.bean.Student"%><html><head><title>计算机112班级通讯录</title></head><body><%!int pageSize=5;int pageCount;int showPage;%><%//通过DAO工厂类获得DAO实现类实例StudentDAO studentDAO = StudentDAOFactory.getStudentDAOInstance();int recordCount=studentDAO.getRecordCount("");//计算分页后的总数pageCount=(recordCount%pageSize==0)?(recordCount/pageSize):(recordCount/pageSi ze+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;}List<Student> studentList = studentDAO.findStudentByPage(showPage,pageSize,"");pageContext.setAttribute("studentList",studentList);//如果要显示第showPage页,那么游标应该移动到的position的值是:int position=(showPage-1)*pageSize+1;%>计算机112班级通讯录<table width="700"border="1"><tr><td>学生学号</td><td>学生姓名</td><td>学生年龄</td><td>学生电话</td><td>修改</td><td>删除</td></tr><c:forEach var="student"items="${pageScope.studentList}"><%-- 循环输出学生信息 --%><tr><td>${student.stuno }</td><td>${student.stuname }</td><td>${student.age}</td><td>${student.stutel }</td><td><a href="UpdateStudentForm.jsp?stunum=${student.stuno}">修改</a></td><td><a href="DeleteStudent.jsp?stunum=${student.stuno}">删除</a></td></tr></c:forEach><tr><td><a href="AddStudentForm.jsp">添加同学</a></td></tr></table><br>第<%=showPage %>页(共<%=pageCount %>页)<br><a href="ShowStudentByPage.jsp?showPage=1">首页</a><a href="ShowStudentByPage.jsp?showPage=<%=showPage-1%>">上一页</a><%//根据pageCount的值显示每一页的数字并附加上相应的超链接for(int i=1;i<=pageCount;i++){%><a href="ShowStudentByPage.jsp?showPage=<%=i%>"><%=i%></a><% }%><a href="ShowStudentByPage.jsp?showPage=<%=showPage+1%>">下一页</a><a href="ShowStudentByPage.jsp?showPage=<%=pageCount%>">末页</a><!-- 通过表单提交用户想要显示的页数 --><form action=""method="get">跳转到第<input type="text"name="showPage"size="4">页<input type="submit"name="submit"value="跳转"></form></body></html>删除代码DeleteStudent.Jsp<%@page language="java"pageEncoding="gb2312"import="java.util.List"%><%@page import="com.songqing.dao.StudentDAO"%><%@page import="com.songqing.dao.StudentDAOImpl"%><%@taglib prefix="c"uri="/jsp/jstl/core"%><%@taglib prefix="fmt"uri="/jsp/jstl/fmt"%><%@page import="com.songqing.factory.StudentDAOFactory"%><%@page import="com.songqing.bean.Student"%><html><head><title>DeleteStudent</title></head><body><%request.setCharacterEncoding("gb2312"); //设置参数编码格式String stunum=request.getParameter("stunum");StudentDAO studentDAO = StudentDAOFactory.getStudentDAOInstance();studentDAO.deleteStudent(stunum);%><jsp:forward page="ShowStudentByPage.jsp"></jsp:forward> </body></html>修改代码1、修改窗口代码UpdateStudentForm.jsp<%@page language="java"pageEncoding="gb2312"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>修改学生信息</title></head><body><%String stunum=request.getParameter("stunum");pageContext.setAttribute("stuno", stunum);%><form action="UpdateStudent.jsp"method="post">修改学生信息<table><tr><td>学生学号:</td><td><input type="text"name="stuno"value="${pageScope.stuno}" readonly /></td></tr><tr><td>学生姓名:</td><td><input type="text"name="stuname"/></td></tr><tr><td>学生年龄:</td><td><input type="text"name="stuage"/></td></tr><tr><td>学生电话:</td><td><input type="text"name="stutel"/></td></tr><tr><td><input type="submit"value="修改"></td><td><input type="reset"value="重置"></td></tr></table></form></body></html>2、修改代码UpdateStudent.jsp<%@page language="java"pageEncoding="gb2312"import="java.util.List"%> <%@page import="com.songqing.dao.StudentDAO"%><%@page import="com.songqing.dao.StudentDAOImpl"%><%@taglib prefix="c"uri="/jsp/jstl/core"%><%@taglib prefix="fmt"uri="/jsp/jstl/fmt"%><%@page import="com.songqing.factory.StudentDAOFactory"%><%@page import="com.songqing.bean.Student"%><html><head><title>updateStudent</title></head><body><%request.setCharacterEncoding("gb2312"); //设置参数编码格式Student student=new Student();student.setstuno(request.getParameter("stuno"));student.setstuname(request.getParameter("stuname"));student.setage(request.getParameter("stuage"));student.setstutel(request.getParameter("stutel"));StudentDAO studentDAO = StudentDAOFactory.getStudentDAOInstance();studentDAO.updateStudent(student);%><jsp:forward page="ShowStudentByPage.jsp"></jsp:forward> </body></html>添加代码1、添加窗口代码AddStudentForm.jsp<%@page language="java"pageEncoding="gb2312"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>添加学生信息</title></head><body><form action="AddStudent.jsp"method="post">添加学生信息<table><tr><td>学生学号:</td><td><input type="text"name="stuno"/></td></tr><tr><td>学生姓名:</td><td><input type="text"name="stuname"/></td></tr><tr><td>学生年龄:</td><td><input type="text"name="stuage"/></td></tr><tr><td>学生电话:</td><td><input type="text"name="stutel"/></td></tr><tr><td><input type="submit"value="添加"></td><td><input type="reset"value="重置"></td></tr></table></form></body></html>2、添加代码AddStudent.jsp<%@page language="java"pageEncoding="gb2312"import="java.util.List"%><%@page import="com.songqing.dao.StudentDAO"%><%@page import="com.songqing.dao.StudentDAOImpl"%><%@taglib prefix="c"uri="/jsp/jstl/core"%><%@taglib prefix="fmt"uri="/jsp/jstl/fmt"%><%@page import="com.songqing.factory.StudentDAOFactory"%><%@page import="com.songqing.bean.Student"%><html><head><title>addStudent</title></head><body><%request.setCharacterEncoding("gb2312"); //设置参数编码格式Student student=new Student();student.setstuno(request.getParameter("stuno"));student.setstuname(request.getParameter("stuname"));student.setage(request.getParameter("stuage"));student.setstutel(request.getParameter("stutel"));//通过DAO工厂类获得DAO实现类实例StudentDAO studentDAO = StudentDAOFactory.getStudentDAOInstance();studentDAO.addStudent(student);%><jsp:forward page="ShowStudentByPage.jsp"></jsp:forward> </body></html>(3).java代码1、Student类定义代码package com.songqing.bean;public class Student {private String stuno;private String stuname;private String age;private String stutel;public Student(){stuno=null;stuname=null;age=null;stutel=null;}public String getstuno() {return stuno;}public void setstuno(String stuno) {this.stuno = stuno;}public String getstuname() {return stuname;}public void setstuname(String stuname) { this.stuname = stuname;}public String getage() {return age;}public void setage(String age) {this.age = age;}public String getstutel() {return stutel;}public void setstutel(String stutel) { this.stutel = stutel;}}2、DAO 接口代码package com.songqing.dao;import java.util.List;import com.songqing.bean.Student;public interface StudentDAO {public void addStudent(Student student);public void updateStudent(Student student);public void deleteStudent(String stuno);public List<Student> findAllStudent();public List<Student> findStudentByPage(int pageIndex,int pageSize,String str);public int getRecordCount(String str);public Student findStudentById(String stuno);public boolean finduser(String user,String password);}3、DAO 实现类代码package com.songqing.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import com.songqing.bean.Student;import com.songqing.util.DBConnection;public class StudentDAOImpl implements StudentDAO {public void addStudent(Student student) {Connection conn = DBConnection.getConnection();String addSQL = "insert into student(stuno,stuname,age,stutel) values(?,?,?,?)";PreparedStatement pstmt = null;try {pstmt = conn.prepareStatement(addSQL);pstmt.setString(1, student.getstuno());pstmt.setString(2, student.getstuname());pstmt.setString(3, student.getage());pstmt.setString(4, student.getstutel());pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally{DBConnection.close(pstmt);DBConnection.close(conn);}}public void deleteStudent(String stuno) {Connection conn = DBConnection.getConnection();String updateSQL = "delete from student where stuno=?";PreparedStatement pstmt = null;try {pstmt = conn.prepareStatement(updateSQL);pstmt.setString(1, stuno);pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally{DBConnection.close(pstmt);DBConnection.close(conn);}}public List<Student> findAllStudent() {Connection conn = DBConnection.getConnection();String updateSQL = "select * from student";PreparedStatement pstmt = null;List<Student> studentList = new ArrayList<Student>();try {pstmt = conn.prepareStatement(updateSQL);ResultSet rs = pstmt.executeQuery();while(rs.next()) {Student student = new Student();student.setstuno(rs.getString(1));student.setstuname(rs.getString(2));student.setage(rs.getString(3));student.setstutel(rs.getString(4));studentList.add(student);}} catch (SQLException e) {e.printStackTrace();} finally{DBConnection.close(pstmt);DBConnection.close(conn);}return studentList;}public List<Student> findStudentByPage(int pageIndex,int pageSize,String str) {Connection conn = DBConnection.getConnection();String updateSQL = "select * from student";PreparedStatement pstmt = null;List<Student> studentList = new ArrayList<Student>();int count=getRecordCount(str);int n=pageSize;try {pstmt=conn.prepareStatement(updateSQL);ResultSet rs=pstmt.executeQuery();if(count%pageSize!=0){if((count/pageSize+1)==pageIndex)n=count%pageSize;}rs.absolute((pageIndex-1)*pageSize+1);for(int i=1;i<=n;i++){Student student = new Student();student.setstuno(rs.getString(1));student.setstuname(rs.getString(2));student.setage(rs.getString(3));student.setstutel(rs.getString(4));studentList.add(student);rs.next();}} catch (SQLException e) {e.printStackTrace();} finally{DBConnection.close(conn);}return studentList;}public void updateStudent(Student student) {Connection conn = DBConnection.getConnection();String updateSQL = "update student set stuname=?," +"age=?,stutel=? where stuno=?";PreparedStatement pstmt = null;try {pstmt = conn.prepareStatement(updateSQL);pstmt.setString(1, student.getstuname());pstmt.setString(2, student.getage());pstmt.setString(3, student.getstutel());pstmt.setString(4, student.getstuno());pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally{DBConnection.close(pstmt);DBConnection.close(conn);}}public Student findStudentById(String stuno) {Connection conn = DBConnection.getConnection();String updateSQL = "select * from student where stuno = ?"; PreparedStatement pstmt = null;Student student = new Student();try {pstmt = conn.prepareStatement(updateSQL);pstmt.setString(1, stuno);ResultSet rs = pstmt.executeQuery();if(rs.next()) {student.setstuno(rs.getString(1));student.setstuname(rs.getString(2));student.setage(rs.getString(3));student.setstutel(rs.getString(4));}} catch (SQLException e) {e.printStackTrace();} finally{DBConnection.close(pstmt);DBConnection.close(conn);}return student;}public int getRecordCount(String str) {Connection conn = DBConnection.getConnection();String updateSQL = "select count(*) from student"+str; PreparedStatement pstmt = null;int count=0;try{pstmt = conn.prepareStatement(updateSQL);ResultSet rs = pstmt.executeQuery();rs.next();count=rs.getInt(1);} catch (SQLException e) {e.printStackTrace();} finally{DBConnection.close(pstmt);DBConnection.close(conn);}return count;}public boolean finduser(String user,String password){Connection conn = DBConnection.getConnection();String updateSQL = "select * from user where user = ? and password=?";PreparedStatement pstmt = null;boolean flag=false;try {pstmt = conn.prepareStatement(updateSQL);pstmt.setString(1, user);pstmt.setString(2, password);ResultSet rs = pstmt.executeQuery();if(rs.next()) {flag=true;}} catch (SQLException e) {e.printStackTrace();} finally{DBConnection.close(pstmt);DBConnection.close(conn);}return flag;}}4、DAO工厂类代码package com.songqing.factory;import com.songqing.dao.StudentDAO;import com.songqing.dao.StudentDAOImpl;public class StudentDAOFactory {public static StudentDAO getStudentDAOInstance(){return new StudentDAOImpl();}}5、数据库连接代码package com.songqing.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DBConnection {private static final String DBDRIVER = "com.mysql.jdbc.Driver" ;private static final String DBURL = "jdbc:mysql://localhost:3306/test";private static final String DBUSER = "root" ;private static final String DBPASSWORD = "ddssqq";public static Connection getConnection(){Connection conn = null;try {Class.forName(DBDRIVER);conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}public static void close(Connection conn) {if(conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}public static void close(PreparedStatement pstmt) { if(pstmt != null) {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}}public static void close(ResultSet rs) {if(rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}}}四、实验截图(1)登录界面图(2)成功登录后分页显示图(3)删除操作后分页显示图如:删除学生学号为2的学生(4)修改操作图(5)添加操作图原始通讯录页表添加页添加后页表验证同一个学号的同学能否重复录入继续添加,如:添加一个学号为1的同学的信息点击添加后,通讯录里的信息没变化故,同一个学号的同学不能重复录入五、实验总结本次实验,给我感受很深的是我很好的巩固了前面所学的基础知识,加深了我对它们的理解,最重要的一点是,我通过此次实验,编程能力有了一定的提高。

应用jsp和hibernate设计实现在线电话薄本科毕业设计

应用jsp和hibernate设计实现在线电话薄本科毕业设计

应用jsp和hibernate设计实现在线通讯录1 引言1.1研究背景随着网络及现代通信技术的发展,人们之间的联系越来越便捷,这也使得同时与许多人保持联系成为可能,而单纯依靠人脑已经很难记住所有人的联系方式。

对于存储电话号码到手机上的方式,比较方便,随时随地可以联系,不过只能通过电话联系,没有记录其他的联系方式;对于记录电话等信息到本子上的方式,第一也可能丢失本子,第二是查找起来比较困难,需要人工查找,而且更新时不容易,需要涂改以前记录的信息,第三格式比较死板,不利于跟随用户的需求扩展;对于用名片夹存放名片的形式也是查找起来不方便,有丢失的危险;对于记录到WORD文档或打印出来的,也是扩展性不强,查找起来不方便。

因此,以软件形式实现的通讯录成为了许多人保持联系方式的首选。

Web站点提供一个图形化的界面,用于浏览网上资源。

它是一个在Internat上运行的全球性、分布式信息发布系统。

该系统通过Internat向用户提供基于超媒体的数据信息服务。

它把各种类型的信息(文本、图像、声音和视频等)有机地集成起来,供用户使用。

Web可以提供将图形、音频、视频信息集合于一体的特性。

同时,Web非常易于导航,只需要从一个链接跳到另一个链接,就可以在各页站点之间进行浏览。

浏览WWW 对系统平台没有要求。

无论从Windows平台、UNIX平台、Macintosh平台,还是别的平台都可以访问WWW。

大量的图形、音频和视频信息会占用相当大的磁盘空间,对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上,只需要在浏览器中指明这个站点就可以了。

使在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息都是一体的。

由于各个Web站点的信息包含站点本身的信息,信息的提供者要经常对站点上的信息进行更新。

各个站点都要尽量保证信息的及时性。

Web的交互性首先表现在它的超链接上,用户的浏览顺序和所浏览的站点完全由用户自己决定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

个人通信录管理系统计算机学院2008级2班张俊发学号:20082101032 1 需求分析由于纸制或电子形式的通讯录,携带不方便,或容易忘记等方面的缺点,所以要开发一个网络通讯录,方便用户提供使用:1.用户注册、登录功能2.登录后,显示出与当前用户相关的联系人名单3.添加新联系人4.删除联系人5.根据联系人类型查找联系人信息根据以上要求,开发一个网络通讯录。

2 数据库实现过程创建在线通讯录数据库、表,数据库名为:addressBook。

数据表为:USERS、BOOK.实现代码如下:User表:Book表:SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `book`-- ----------------------------DROP TABLE IF EXISTS `book`;CREATE TABLE `book` (`bookID` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) CHARACTER SET utf8 DEFAULT NULL,`sex` char(2) CHARACTER SET utf8 DEFAULT NULL,`phone` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `homeAddr` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `mobilePhone` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `email` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `company` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `comAddr` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `relation` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `userID` int(11) NOT NULL, PRIMARY KEY (`bookID`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;-- ---------------------------- -- Table structure for `user` -- ----------------------------DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (`userID` int(11) NOT NULL AUTO_INCREMENT,`userName` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `password` varchar(50) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (`userID`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;3在线通讯录的实体类设计用户类:UserBean.java 通讯录类:BookBean.java4在线通讯录的功能● 用户登录验证 ● 添加新联系人 ● 删除联系人信息 ● 查找所有联系人●按照类别查找联系人实体类数据库表UserBean.jav a BookBean.javaUserbook对应关属性对应字段5在线通讯录MVC 模式设计模型(Model)——就是业务流程/状态的处理以及业务规则的制定。

视图(View )——视图就是用户交互的界面。

控制器(Controller )——可以理解为从用户接受请求,将模型与视图匹配在一起,共同完成用户的请求。

6 各阶段具体实现过程6.1项目文件结构图用 户登录验证查找所有联系人添加联系人删除联系人分类查找联系人查询联系人6.2 用户注册的实现用户登录文件为Register.jsp ,用户输入用户名和密码后,提交“addUserServlet”进行验证处理,若用户名已存在则提示“用户名已存在,请重新输入!”,并返回注册页面,否则,把信息写入数据库,注册新用户。

“addUserServlet”部分代码:String userName = request.getParameter("name");String password = request.getParameter("password");UserdbManager UserMng = new UserdbManager();UserBean user = UserMng.findUser(userName);if (user != null && user.getName()!=null&& user.getName().equals(userName)) {PrintWriter out = response.getWriter();out.println("<script>alert('用户名已存在,请重新输入!');history.back();</script>");out.flush();out.close();} else {int result = UserMng.AddUser(userName, password);if (result > 0) {request.getRequestDispatcher("success.jsp").forward(request,response);} else {System.out.println("添加数据失败");request.getRequestDispatcher("error.jsp").forward(request,response);}}6.3 用户登录的实现用户登录文件为Login.jsp,用来实现用户的登录。

用户输入用户名和密码后,提交"LoginServlet"进行验证处理,验证正确之后,实现登陆,转到"DisplayServlet",查询数据库,显示通讯录信息。

具体代码如下:“LoginServle”部分:String userName = request.getParameter("name");String password = request.getParameter("password");UserdbManager userMng = new UserdbManager();UserBean user = userMng.findUser(userName);if(user!=null && user.getPwd()!=null&& user.getPwd().equals(password)){ HttpSession session = request.getSession();session.setAttribute("user", user);request.getRequestDispatcher("DisplayServlet"). forward(request,response);}else {PrintWriter out = response.getWriter();out.println("<script>alert('用户名或密码错误,请重新输入!');history.back();</script>");out.flush();out.close();}“DisplayServlet”部分:HttpSession session = request.getSession();UserBean user =(UserBean) session.getAttribute("user");BookdbManager bookMng = new BookdbManager();ArrayList list =bookMng.findBookByUserId(user.getId());session.setAttribute("books", list);request.getRequestDispatcher("mainPage.jsp").forward(request, response);登录成功:6.4 通讯录名片的添加、修改、删除操作实现名片的增加操作,涉及到一下页面:addBook.jsp 、updateBook.jsp 、BookServlet.java 其中,addBook.jsp 、updateBook.jsp 为用户所见的界面;BookServlet.java处理数据实现数据的添加、修改和删除,将数据写入数据库。

添加新联系人:修改联系人信息:“BookServlet.java”部分代码:private BookBean makeBook(HttpServletRequest request) { HttpSession session = request.getSession();UserBean user =(UserBean) session.getAttribute("user");BookBean book = new BookBean();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());return book;}“doPost”函数:String type = request.getParameter("type");int result = 0;BookdbManager bookMng = new BookdbManager();if (type.equals("del")) {int bookId = 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);}6.5通讯录名片的分类查询操作实现通讯录名片的分类查询操作,需要以下页面:SelectServlet.java、mainPage.jsp。

相关文档
最新文档