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 ...
随机推荐
- QQ日迹Omi实战开发,从0到1
写在前面 相信大家对Omi应该都不陌生了,如果还有不了解的同学先看看这里.了解并使用Omi之后你会发现真的回不去了~~~ 精通Omi框架 先简单说一下吧,Omi就是一个可以快速开发项目的组件化框架,和 ...
- asp.net修行入门讨论
突然想起来大学的一个专业课老师,教C,C#,他的教学特点就是只教简单知识,现在想想真有道理,假如上来就教我们枯燥难以理解的高深知识,我们会恐惧编程的,极大地打击学习的兴趣,所以他C语言的指针从来没教过 ...
- SpringMVC+Mybatis+MySQL配置Redis缓存
SpringMVC+Mybatis+MySQL配置Redis缓存 1.准备环境: SpringMVC:spring-framework-4.3.5.RELEASE-dist Mybatis:3.4.2 ...
- HDU - 4995 - Revenge of kNN
题目链接 : https://vjudge.net/problem/HDU-4995 题目大意 : 读入n个点的坐标与该点所拥有的值val,进行m次查询,对于每一次查询,读入该点的坐标,计算离该 ...
- .NET CORE——Console中使用依赖注入
我们都知道,在 ASP.NET CORE 中通过依赖注入的方式来使用服务十分的简单,而在 Console 中,其实也只是稍微绕了个小弯子而已.不管是内置 DI 组件或者第三方的 DI 组件(如Auto ...
- [javascript] visible - 待写
摘要 jquery 有个筛选器 visible , 一般用于选择 可见元素 $('p:visible') 就是选择可见的 p 元素. 但发现有时候不可用.!!
- vue使用中的随笔
在vue中vue-router配置的路径默认有"#"号,虽然无伤大雅,但是很多客户都不想看到,所以在初始配置路由的时候加上下面一句代码就可以了 mode:'history', 路径 ...
- JS和jQuery中ul li遍历获取对应的下角标
首先先看代码: html代码部分: <div id="div"> <ul> <li>1111111</li> <li>2 ...
- Install and Run NATS Streaming Server
NATS是一个开源的.轻量级的.高性能的分布式消息通信系统,使用的公司有百度.西门子.VMware.HTC和爱立信.NATS Streaming是以NATS为动力的数据流系统,是用go语言写的,NAT ...
- 6步就能搞出个react网站哈,玩一把!
1.安装mk-tools命令行工具 $ npm i -g mk-tools 2.创建空website $ mk website myDemo $ cd myDemo 3.clone应 ...