jdbc电话本项目
整体思路:在登陆之后才能查看自己的电话本,电话本中包含用户名,联系人名字,电话,性别,分类;
1、登陆注册页面--数据库User表,注册登陆使用
2、电话本的前段显示,用表格和表单,
3、创建存取的电话本的表的类,实现各种setget方法及构造方法
4、电话本需要查询,删除,添加,修改的功能,创建java文件实现这些方法
5、创建各种方法的servlet,实现这些功能,
注意:进行非空验证,还有就是在电话本的存储的表中要有隐藏的id,通过前台传入id,作为主键去判断实现那些方法,在登陆之后要注意接收登录时的用户名,
需要用到的还有就是js中的点击事件等等
gettimestamp:时间戳,表示出日期和时间
1、在前段显示表格
- 欢迎, [<%=username%>]
- <a href="login.jsp">重新登录</a>
- <a href="register.jsp">新用户注册</a>
- <hr>
- <h2>添加(或者修改)联系人信息</h2>
- <form id="addOrUpdateForm" action="InsertOrUpdateContactServlet"
- method="post">
- <input type="hidden" name="id" />
- <table>
- <tr>
- <td>联系人名称:</td>
- <td><input type="text" name="cname" /></td>
- </tr>
- <tr>
- <td>电话:</td>
- <td><input type="text" name="tel" /></td>
- </tr>
- <tr>
- <td>性别:</td>
- <td><select name="sex">
- <option value="">未选择</option>
- <option value="男">男</option>
- <option value="女">女</option>
- <option value="其他">其他</option>
- </select></td>
- </tr>
- <tr>
- <td>分组:</td>
- <td><select name="tcgroup">
- <option value="">未选择</option>
- <option value="同事">同事</option>
- <option value="朋友">朋友</option>
- <option value="同学">同学</option>
- <option value="家人">家人</option>
- </select></td>
- </tr>
- <tr>
- <td><input type="submit" value="保存"></td>
- <td><input type="reset" value="重置" /></td>
- </tr>
- </table>
- </form>
- <hr>
- <h2>查询联系人</h2>
- <form action="ShowIndexContactServlet" method="post">
- <input type="hidden" name="isSearch" value="do" /> 联系人名称:<input
- type="text" name="cname" /> 电话:<input type="text" name="tel" /> 性别:
- <select name="sex">
- <option value="">未选择</option>
- <option value="男">男</option>
- <option value="女">女</option>
- <option value="其他">其他</option>
- </select> 分组: <select name="tcgroup">
- <option value="">未选择</option>
- <option value="同事">同事</option>
- <option value="朋友">朋友</option>
- <option value="同学">同学</option>
- <option value="家人">家人</option>
- </select> <input type="submit" value="查询" /><input type="button"
- id="btn_delMultiple" value="删除选中记录" onclick="confirmMultiDel()" />
- </form>
- <hr>
- //在表格内输出
- <%
- List<ContactBook> cbList = (List<ContactBook>) session.getAttribute("cbList");
- if (cbList != null && cbList.size() > ) {
- out.print("<table style='text-align:center;' width='60%' border=1 cellpadding=0 cellspacing=0>");
- out.print("<tr><td>名称</td><td>电话</td><td>分组</td><td>性别</td><td>添加时间</td><td>管理</td>"
- + "<td><input id='leader' type='checkbox' /></td></tr>");
- for (ContactBook c : cbList) {
- out.print("<tr>");
- out.print("<td>" + c.getName() + "</td>");
- out.print("<td>" + c.getTel() + "</td>");
- out.print("<td>" + c.getTcgroup() + "</td>");
- out.print("<td>" + c.getSex() + "</td>");
- out.print("<td>" + DateConvertor.putDate2String(c.getAddtime()) + "</td>");
- out.print("<td><a href='DeleteContactBook?ids=" + c.getId()
- + "' onclick='return confirmDel()'>删除</a> " + "<a href='#' onclick='loadFormData(\""
- + c.getId() + "\", \"" + c.getName() + "\", \"" + c.getTel() + "\", \"" + c.getSex()
- + "\",\"" + c.getTcgroup() + "\")'>修改</a></td>");
- out.print("<td><input type='checkbox' name='select' value='" + c.getId() + "' /></td>");
- out.print("</tr>");
- }
- out.print("</table>");
- } else {
- out.print("<h1>没有记录 !</h1>");
- }
- %>
- <script type="text/javascript">
- // 点击修改时执行的事件, 将form表单填充
- function loadFormData(id, cname, tel, sex, tcgroup) {
- var formData = document.getElementById("addOrUpdateForm");
- formData.id.value = id;
- formData.cname.value = cname;
- formData.tel.value = tel;
- formData.tcgroup.value = tcgroup;
- formData.sex.value = sex;
- }
// 单条记录删除的确认
function confirmDel() {
var r = confirm("确定要删除这条记录吗 ?");
if (r) {
return true;
}
return false;
}
// 多条记录删除的确认
function confirmMultiDel() {
var objs = document.getElementsByName("select");
var arrayCheck = [];
for (var i in objs) {
if (objs[i].checked) {
arrayCheck.push(objs[i].value);
}
}
if(arrayCheck.length > 0) {
var cf = confirm("选中了" + arrayCheck.length + "条数据, 确定删除吗 ?");
if (cf) {
window.location.href = "DeleteContactBook?ids=" + arrayCheck;
// 1,2,3,4,5
}
} else {
alert("未选中任何记录 !");
}
}
// 点击复选框, 全选列表
document.getElementById("leader").onclick = function() {
var t = document.getElementById("leader").checked;
var objs = document.getElementsByName("select");
for (var i = 0; i < objs.length; i++) {
objs[i].checked = t;
}
}
</script>
jdbc电话本项目的更多相关文章
- JavaWeb项目之电话本,两个版本,以及总结反思
使用技术: Oracle 数据库 前端后台: Servlet + jsp + JDBC + html + css + js 前端界面自定, 但一定实现需要的功能 实现功能: 用户可以登录 登录之后可以 ...
- C语言实现电话本 动态开辟 信息存储于文件
下面是我用C写的一个电话本小项目,实现的功能有:添加 删除 修改 查找 排序 清空 显示,功能还是比较全的,内存也是动态开辟的.能存储于本地,能从本地读出并显示 头文件部分代码,contact.h: ...
- 用SpringBoot搭建简单电商项目 01
前几节呢,我们已经简单介绍了SpringBoot框架的使用,从这一节开始,我们尝试着使用SpringBoot框架来一步一步搭建一个简单电商项目.当然了,这不是真正的电商项目,你可以看成是一个CRUD案 ...
- 记一次开发:Qt简单电话本程序
前言 断断续续学习C++一年了,现在要做课设,觉得控制台界面实在太难看,于是用Qt做一个图形化的程序出来. 学习Qt也没有多久,只是了解了个大概,这次开发基本上是啃了2天的官方帮助文档,然后利用各种Q ...
- 从头开始 启动开源电商项目jShop
1. 引言 干了三年C#, 有了转Java 的念想,所以尝试学习一下java web,java语法本身和C#没有太多的差别,所以打算看看开源的java项目,开源的Java项目还是非常非常多的,曾经看了 ...
- 微信电话本可免费拨打网络电话 通话一分钟约300K流量
微信电话本新版本于昨日晚间发布,这是一款智能通讯增强软件,通话双方都下载此APP并开通免费通话功能就能使用微信电话本拨打免费网络电话,在对方无法接通情况下还能将音频转向语音信箱,微信电话本目前支持An ...
- 苹果IPhone手机由于更新了IOS7 Beta测试版导致“激活出错”后,如何还原电话本和照片方法
苹果这狗日的,手段果然狠,因为用户提前升级了测试版又没有更新正式版,就突然把手机变砖头,既不让升级正式版,也不让备份手机中的信息,确实有必要这样吗? 我的手机是IPone4s,在看了6月Apple W ...
- Android-->发送短信页面实现(短信发送以及群发和从电话本中选择联系人)-----------》2
分析下怎么写 首先,我们需要一个输入框,可以手动的输入手机号码, 其次,很少有人愿意手动输入,那么我们需要提供一个按钮来给我们的用户选择自己电话本中的联系人(一次可以选择多个即群发) 然后,我们需要一 ...
- Python Django(WEB电商项目构建)
(坚持每一天,就是成功) Python Django Web框架,Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,即模型M,模板T和视图V组成. 安装Pyth ...
随机推荐
- Java--回调接口
回调接口: 我们都知道,一个线程在运行中,遇到一个耗时操作(方法)时,会开启另外一个线程,即所谓 -- 异步 .java中 回调接口 也必然应用与异步加载. 所谓 回调接口 ,也就是线程运行中 遇到一 ...
- Go语言string,int,int64 ,float转换
(1)int转string s := strconv.Itoa(i)等价于s := strconv.FormatInt(int64(i), 10) (2)int64转string i := int64 ...
- hdu_3746: Cyclic Nacklace
题目链接 给出一个字符串,你可以通过在首尾加入字符使其变成一个具有周期T(T>=2)的字符串,求所需加入的最少字符数. 所考察算法仍然是对next数组含义的理解 #include<cstd ...
- nyoj_6:喷水装置(一)
要让总的使用到的装置数尽可能少,则可以贪心每次选取未使用的半径最大的装置 题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=6 #inclu ...
- 使用JavaScript开发跨平台的桌面应用
任何可以使用JavaScript来编写的应用,最终会由JavaScript编写.--Atwood定律 Atwood's Law是Jeff Atwood在2007年提出的:"any appli ...
- (转)Linux下安装firefox最新版
为了方便在linux服务器上面进行web调试,安装火狐浏览器 1下载 首先去火狐主页,中文是http://www.firefox.com.cn/,点击"免费下载" 2 解压并创建快 ...
- Excel Countif函数用法
公式:=COUNTIF(范围,条件) 例1: 统计A1:A11当中,等于数字3的单元格,结果是4个. 例2:还可以进行大于(>),大于等于(>=),小于(<),小于等于(<=) ...
- ES6中的Set和Map集合
前面的话 在ES6标准制定以前,由于可选的集合类型有限,数组使用的又是数值型索引,因而经常被用于创建队列和栈.如果需要使用非数值型索引,就会用非数组对象创建所需的数据结构,而这就是Set集合与Map集 ...
- Python初识(PyMysql实例)
为什么学习python呢,好吧,其实我也不知道,反正就是想学习了. 资料什么的全都low了,传值博客免费的就够.不要问我为什么,我基本上都是找的免费的视频.然后传值博客的最多,我真的不是打广告. py ...
- 解决 lispbox macOS 不兼容问题
误打误撞,解决了很重要的入门级问题,简要记录下. lispbox 官网末尾说目前暂不兼容 10.4 以上系统: TODO: Compile on Mac OS X 10.4, for compatab ...