JavaWeb练习-网上名片管理系统
- 实验项目名称
JavaWeb网上名片管理系统
- 实验目的
实现名片的增、删、改、查等操作。
- 实验基本原理
JSP指令、JSP动作、JSP内置对象等
- 主要仪器设备及耗材
Win10、Myeclipse
- 实验步骤


说明:再打开本项目的时候,需要修改为自己本地的数据库名和密码,
并导入我的数据库里面的表。所有的连接数据库驱动的操作使用一个公共类实现,对外只提供一个静态的连接数据库的接口。



(一)、用户登录与注册
- 用户登录
界面设计:
使用bootstrap 部分代码如下:


用户名或密码为空时报错,密码错误时报错!然后自动返回登录界面;

部分后端代码:

- 用户注册
使用bootstrap部分代码如下:

界面设计:

当用户名或密码为空以及两次输入不一致时,会报错!

当用户名存在时报错

部分后端代码:

然后插入数据库,并返回登录界面!!

(二)、主界面
界面设计:利用bootstrap设计,采用下拉菜单实现导航功能

部分代码如下:

(三)、名片管理
- 添加名片
界面设计:利用bootstrap以仿真形式增加名片信息。

用户名为空会报错!用户名已存在会报错!

部分后端代码:获取前端信息,判断数据库中是否存在,若存在则报错,不存在则插入数据库。

- 修改名片
界面设计:




部分后端代码:首先获取想要修改的姓名,然后从数据库中查找到这条记录,然后显示到前端,然后再修改后,修改到数据库中。
注意:如果修改名字的话,需要3个jsp页面。一个前端,两个后端,在第二个里面将姓名用session.setAttribute("name", name);设置为会话属性,然后在第三个jsp获取这个属性,因为如果要改姓名的话,会按照你当前改的去数据库查询,所以肯定会抛出异常。



- 查询名片
界面设置:
采用模糊查询的方式,把姓氏相同的人查出来,放在列表里。


部分后端代码:从数据库中选出符合条件的记录。然后利用while语句放入列表中。


- 删除名片
界面设计:分为彻底删除和放入回收站


放入回收站:



后端部分代码:
根据输入的姓名,然后选择不同的删除。设计三个jsp,第一个是前端,第二个就是从数据库中彻底删除数据,第三个是放入回收站中,如何实现在点击不同代码的的时候跳转提交到不同的jsp是个重点:

第一个按钮就通过外层的form提交的相应的jsp,然后第二个按钮就设计formaction属性跳到相应的jsp页面。
彻底删除部分代码如下;

放入回收站部分代码如下:
放入回收站的操作:首先根据姓名找到该数据,然后建一个与前一个表对应的新表,先把数据加入新表,然后再把前一个表的数据删除。


(四)、回收站管理
- 还原
界面设置:

部分后端代码:
还原与放入回收站互为逆操作,只需将相应的提示消息和表名改一下即可

- 彻底删除
界面设计:
彻底删除就直接将回收站的表里的记录删掉即可

部分后代代码:

- 浏览和查询
界面设计:就将回收站数据库中的记录一条条全部输出到列表

部分后端代码:

- 思考讨论题或体会或对改进实验的建议
此次实验的不足在于代码过于繁琐,下次可以考虑把相同的CSS设计样式写到一个样式表中并引用,实现代码复用,提高编程效率。
- 参考资料
Bootstrap档案
数据库课本
项目代码已上传至我的Github:https://github.com/GavinYGM/JavaWeb_Protects/tree/master/javaweb_homework4
JavaWeb练习-网上名片管理系统的更多相关文章
- Python:名片管理系统
字符串和列表学完, 自己试着写了一个非常简单的名片管理系统, 新萌尝试, 大佬们不要喷, 修改名片的功能我偷了个懒, 因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串 我的思路是,把用户 ...
- Python:名片管理系统(增加登录功能后出现问题,求教)
我将一个简单的名片管理系统定义成了函数.. 2层. 一个登录界面: 一个名片管理系统使用界面: 逻辑是:登录成功=>跳入名片系统使用界面,同时,跳出登录界面,给出欢迎使用,程序结束. 此时问题来 ...
- 名片管理系统v1.1(main)
# version: 1.1# author: Mark import cords_tools while True: # 显示界面 cords_tools.show_cords() cords ...
- 名片管理系统v1.1(tools)
cords_list = []def show_cords(): print("*"*80) print("欢迎使用[名片管理系统]v.1.1") print( ...
- Python基础综合运用——搭建名片管理系统
综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...
- python程序—名片管理系统
创建一个名片管理系统,实现增.删.改.查.四项功能 listcard = [] while True: print('**********欢迎来到名片管理系统**********') print(' ...
- python基础提高演练(名片管理系统的开发)
综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ********* ...
- day_11 py 名片管理系统
'' 2018-4-23 11:42:29 名片管理系统 字典与列表的结合 ''' #1.打印功能提示 print("="*50) print(" 1.添加一个新的名片& ...
- day 4 名片管理系统 -函数版
修改没有用函数的程序 具有独立功能的代码块 源程序 #1.打印功能信息 print("*"*50) print("\t名片管理系统 V3\t") print(& ...
随机推荐
- 正则表达式与Python中re模块的使用
正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...
- C&C++类型定义typedef
1.声明 1.1结构声明: struct { int n; double x,y; }; 1.2带结构标志的声明 struct point{ double x,y; }; 1.3定义结构类型 1.3. ...
- Java Web组件Servlet、Filter、Listener
一.Servlet 类javax.servlet.http.HttpServlet; 1.是单例模式,一个web容器中只有一个实例.服务器调用它的service方法进行请求处理, service方法又 ...
- ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ’1′ for key ‘PRIMARY’
在打开navicat设计表时,想更改主键id为自动增长,会弹出来这么一个提示.翻译为:更改表将导致自动增长(列)的重新排序,主键会有重复的‘1’.原因是因为auto_increment是从1开始自增的 ...
- C语言数据结构基础学习笔记——树
树是一种一对多的逻辑结构,树的子树之间没有关系. 度:结点拥有的子树数量. 树的度:树中所有结点的度的最大值. 结点的深度:从根开始,自顶向下计数. 结点的高度:从叶结点开始,自底向上计数. 树的性质 ...
- Django的POST请求时因为开启防止csrf,报403错误,及四种解决方法
Django默认开启防止csrf(跨站点请求伪造)攻击,在post请求时,没有上传 csrf字段,导致校验失败,报403错误 解决方法1: 注释掉此段代码,即可. 缺点:导致Django项目完全无法防 ...
- debian apache2 修改默认路径
1.修改 /etc/apache2/sites-enable/000-default.conf 将DocumentRoot改成你的路径 2.修改 /etc/apache2/apache2.conf & ...
- java基础回忆、复习(一)
一:浅拷贝与深拷贝: 对于基本数据类型,直接进行拷贝,String类型,有两种拷贝方式: 1:直接将原对象中的name的引用值拷贝给新对象的name字段.<浅拷贝> 2:根据原对象中的na ...
- leetCode53. 最大子序和
示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6. 进阶: /** * @param {number[]} nu ...
- Jmeter5.1.1的汉化
Jmeter的汉化: 在菜单导航栏,选择options-->choose language-->chinese(simplified)中文简体 默认打开汉化: 编辑jmeter.bat: ...