【JavaWeb】-简单通讯录管理系统的实现-Jsp+Servlet+JavaBean+Sql Server (附完整源码)

不用评论留邮箱了,不想发了。累

要源码的同学可以通过下面的地址下载,需要积分(可以去某宝找csdn代下
源码下载链接


运行环境:Eclipse tomcat8.5、数据库SQL SERVER
运行截图如下
## 登录页

登录页

通讯录首页

在这里插入图片描述

添加一名联系人页面

在这里插入图片描述

通讯录更改联系人信息页面

在这里插入图片描述

通讯录查询页面

在这里插入图片描述

项目结构图

在这里插入图片描述

获取 数据库连接类:

package bean;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DbConnect {
    public static Connection connection;
    public static String url = "jdbc:sqlserver://localhost:1433; DatabaseName=addressList";
    private static String username = "sa";
	private static String password ="";
    public static Connection getConnection() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            connection = DriverManager.getConnection(url,username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }catch (Exception e) {
        	System.out.println("数据库连接失败");
        	e.printStackTrace();
		}
        return connection;
    }
}
通讯录实体类:
package bean;
import java.io.Serializable;
public class Address implements Serializable{
	private int id;
	private String name;
	private String phone1;
	private String phone2;
	public Address() {
	}
	public Address(int id,String name,String phone1,String phone2) {
		super();
		this.id=id;
		this.name=name;
		this.phone1=phone1;
		this.phone2=phone2;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPhone1() {
		return phone1;
	}
	public void setPhone1(String phone1) {
		this.phone1 = phone1;
	}
	public String getPhone2() {
		return phone2;
	}
	public void setPhone2(String phone2) {
		this.phone2 = phone2;
	}
	@Override
	public String toString() {
		return "Address [id=" + id + ", name=" + name + ", phone1=" + phone1 + ", phone2=" + phone2 + "]";
	}
}
登录JSP页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>通讯录</title>
<link rel="stylesheet" href="./css/bootstrap.min.css">
<link href="css/mystyle.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.container {
	color: white;
}
#footer {
	position: fixed;
	bottom: 0;
	text-align: center;
	margin-left: -50px; /*div宽度的一半*/
	left: 39%;
}
</style>
</head>
<body>
<div id="container">
		<div class="container">
			<h1 class="display-4">通讯录</h1>
			<p class="lead">AddressList Book</p>
		</div>
	<br>
	<br>
	<div id="login-container">
		<div align="center">
		<form action="/addressList/loginServer" method="post">
			<br><br>
		 	<img class="mb-4" src="images/b.jpg" alt="这是一个图标" width="72" height="72">
 			 <h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
			<table>
				<tr>
					<td>
						<div class="input-group mb-3">
							<div class="input-group-preend">
								<span class="input-group-text" id="inputGroup-sizing-default">账号</span>
							</div>
								<input name="user" type="text" required autofocus class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default">
						</div>
					</td>
				</tr>
				<tr>
					<td>
						<div class="input-group mb-3">
							<div class="input-group-prepend">
								<span class="input-group-text" id="inputGroup-sizing-default">密码</span>
							</div>
							<input name="pwd" id="pwd" required type="password" class="form-control" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default"> 
							<div class="input-group-append">
								<button class="btn btn-outline-secondary" type="submit" id="button-addon2">登录</button>
							</div>
						</div>
					</td>
				</tr>
			</table>
		</form>
		</div>
	</div>
	<div id="footer" align="center">
		<footer class="text-muted">
			<div class="container">
				<p style="color: white;">Copyright &copy; 2019 gxu author:Wanmao Yi, All Rights Reserved</p>
			</div>
		</footer>
	</div>
</div>

</body>
</html>
登录servlet:(查询所有学生信息显示到主页面jsp): 默认登录帐号是a,密码是1,登录帐号没有使用到数据库。
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
import bean.Address;
import bean.DbConnect;

/**
 * Servlet implementation class loginServer
 */
@WebServlet("/loginServer")
public class loginServer extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public loginServer() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		String user = request.getParameter("user");
		String pwd = request.getParameter("pwd");
		if (user.equals("a") && pwd.equals("1")) {
			Connection connection = DbConnect.getConnection();
			String sql = "select * from addressbook";
			PreparedStatement preparedStatement = null;
			ResultSet resultSet = null;
			List addressbook = null;
			try {
				preparedStatement = connection.prepareStatement(sql);
                resultSet = preparedStatement.executeQuery();
                if (resultSet!=null) {
                	addressbook = new ArrayList();
    				try {
    					while (resultSet.next()) {
    						Address address = new Address();
    						address.setId(resultSet.getInt(1));
    						address.setName(resultSet.getString(2));
    						address.setPhone1(resultSet.getString(3));
    						address.setPhone2(resultSet.getString(4));
    						addressbook.add(address);
    					}
    				} catch (Exception e) {
    					System.out.println("封装数据集失败");
    					e.printStackTrace();
    				}
				}
                HttpSession httpSession = request.getSession();
              httpSession.setMaxInactiveInterval(7200);
              httpSession.setAttribute("addressbook", addressbook);
              response.sendRedirect("addresslist.jsp");
			}catch (SQLException e) {
				System.out.println("1");
				e.printStackTrace();
			}catch (Exception e) {
				// TODO: handle exception
				System.out.println("2");
				e.printStackTrace();
			}	
		}else {
			response.sendRedirect("login.jsp");
		}
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

mvc模式:JSP + Servlet + JavaBean三层架构
MVC模式(Model-View-Controller),是系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller):
可以理解为:JSP充当视图,Servlet充当控制器,JavaBeans充当模型。

1.View层(JSP),前台交互,比如我们注册时的数据等等,serlvet就是与前台数据进行交互的
2.Contrller层(servlet充当):Model与View之间沟通的桥梁, 这个层有业务处理,用户的注册登录就可以看做是User的业务,我们就需要将相关的处理代码写到这个层中。
3.Model层:实现系统的业务逻辑,即javaBean,常见的就是封装对象的属性、数据库连接操作等。
常规会写一个dao层,是属于mvc里面Model层抽出来。目的就是更单纯的和数据库打交道,将servlet的数据和数据库进行交互。

特点:JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。遵循了MVC设计模式
缺点:没有统一的开发框架导致开发周期长

参考博客:
JavaWeb-简单学生信息管理系统的实现-Jsp+Servlet+MySql
Jsp+JavaBean模式,Jsp+Servlet模式,MVC模式介绍

  • 180
    点赞
  • 379
    收藏
    觉得还不错? 一键收藏
  • 315
    评论
源码实现了如下功能: 1.2 系统功能分析 1.2.1 基本功能 支持以下信息的录入: (1)基本信息:姓名、手机号码、电话、电子邮箱、生日、所属组、备注、相片 (2)工作单位:国家、省份、城市、地址、工作单位、所属部门、职位、邮编、电话、传真 (3)网络信息:个人主页、即时通信工具及号码、备用邮箱 (4)家庭资料:国家、省份、城市、地址、邮编、电话 1.2.2 查询功能 (1)默认显示所有条目 (2)模糊查询:可以按姓名、姓名的汉语拼音的声母或全拼查询。支持模糊查询,即输入部分数据后,可以查询出符合条件的全部条目。如:输入“张”,列出所有名字中有“张”的条目;输入“xl”,列出声母为该2个字母的所有条目。 (写该实验报告时,暂未实现按手机号码、电话号码查询。) (3)指定分组后,列出某分组的所有条目。查询结果如果有多个条目,应按照姓名排序,并使用姓或姓的第一个汉语拼音的字母分类。 1.2.3 删除和修改功能 (1)选中单个联系人后,可以修改其内容,可以删除该联系人 (2)选中一个分组后,可以删除该分组,同时删除分组下的全部联系人 (3)支持情况账户下的所有联系人数据 1.2.4 导入和导出 支持将账户下的所有文本文档联系人数据导出为CSV格式文件,支持将CSV文件导入到账户,并能够与主流手机或其他通讯录软件交换数据。 1.2.5 通讯录的显示 显示查询结果,可以设置一个条目可以显示或不显示哪些内容。 1.2.6 通讯录数据的录入 对于新建联系人,保存时如果有同名或同电话号码时,给出提示。 1.2.7 联系人星标 支持一键收藏联系人,联系人加星标后更加方便于用户查找与管理。 【系统设计文档】、【系统需求分析文档】、【系统实验报告】、【答辩展示PPT】另见我的资源……

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 315
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值