用户信息管理系统
技术需求:Servlet +jsp+ mvc +jdbc
软件需求 :Eclipse mysql Tomcat Google
功能需求:完成用户登录 查询所有用户 增加删除用户信息等
数据库设计: 创建用户表 User
首先创建数据库用户表
创建对应的实体类:User.java
package cn.qlu.domin;
public class User {
private Integer uid;
private String uname;
private String pwd;
private String sex;
private Integer age;
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", uname='" + uname + '\'' +
", pwd='" + pwd + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
}
创建UserService接口及实现类
创建UserDao接口及实现类
创建用户登录页面:login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
<title>用户登录页面</title>
<style>
.container{
width: 300px;
height: 600px;
}
</style>
</head>
<body>
<div class="container" style="...">
<h3 style="text-align:center">管理员登录</h3>
<form action="/day13/loginServlet" method="post">
<div class="form-group">
<label for="user">用户名</label>
<input type="text" name="uname" class="form-control" id="user" placeholder="请输入用户名">
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" name="pwd" class="form-control" id="password" placeholder="请输入密码">
</div>
<hr/>
<div class="form-group" style="...">
<input class="btn btn btn-primary" type="submit" value="登录">
</div>
</form>
<div class="alert alert-warning alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert">
<span ></span>
</button>
<strong>${login_msg}</strong>
</div>
</div>
</body>
</html>
编写对应的loginServlet
package cn.qlu.web.servlet;
import cn.qlu.domin.User;
import cn.qlu.service.UserService;
import cn.qlu.service.impl.UserServiceImpl;
import org.apache.commons.beanutils.BeanUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
HttpSession session = request.getSession();
Map<String,String[]> map = request.getParameterMap();
User user = new User();
try {
BeanUtils.populate(user,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//调用Service 查询
UserService service = new UserServiceImpl();
User loginUser = service.login(user);
//判断是否登录成功
if(loginUser!=null){
//登录成功
session.setAttribute("user",loginUser);
response.sendRedirect(request.getContextPath()+"/index.jsp");
}else{
request.setAttribute("login_msg","用户名或密码错误!");
request.getRequestDispatcher("/login.jsp").forward(request,response);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
登录失败显示:
登录成功后:
创建list.jsp 即显示列表所有信息
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
<title>用户信息管理系统</title>
<style type="text/css">
td,th{
text-align: center;
}
</style>
<script>
function deleteUser(uid) {
if(confirm("您确定要删除吗")){
location.href="${pageContext.request.contextPath}/deleteUserServlet?uid="+uid;
}
}
window.onload = function () {
//给删除选中按钮添加单击事件
document.getElementById("delSelected").onclick = function () {
//表单提交
document.getElementById("form").submit();
}
}
</script>
</head>
<body>
<div class="container">
<h3 style="..." align="center">用户信息列表</h3>
<div style="float: left;">
<form class="form-inline">
<div class="form-group">
<label for="exampleInputName2">姓名</label>
<input type="text" class="form-control" id="exampleInputName2" >
</div>
<div class="form-group">
<label for="exampleInputEmail2">性别</label>
<input type="email" class="form-control" id="exampleInputEmail2" >
</div>
<div class="form-group">
<label for="exampleInputEmail2">年龄</label>
<input type="email" class="form-control" id="exampleInputEmail3">
</div>
<button type="submit" class="btn btn-default">查询</button>
</form>
</div>
<div style="float: right; margin:5px">
<a class="btn btn-primary" href="add.jsp">增加联系人</a>
<a class="btn btn-primary" href="javascript:void(0);" id="delSelected">删除选中</a>
</div>
<form id="form" action="/day13/DelSelectedServlet" method="post">
<table border="1" class="table table-bordered table-hover">
<tr class="success">
<th><input type="checkbox"></th>
<th>编号</th>
<th>姓名</th>
<th>密码</th>
<th>性别</th>
<th>年龄</th>
<th>操作</th>
</tr>
<c:forEach items="${users}" var="user" varStatus="s">
<tr>
<td><input type="checkbox" name="uid" value="${user.uid}"></td>
<td>${s.count}</td>
<td>${user.uname}</td>
<td>${user.pwd}</td>
<td>${user.sex}</td>
<td>${user.age}</td>
<td>
<a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?uid=${user.uid}" />修改
<a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.uid})" />删除
</td>
</tr>
</c:forEach>
</table>
</form>
<div>
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li>
<a href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
<span style="font-size: 22px;margin-left:20px" >
共16条记录,共四页
</span>
</ul>
</nav>
</div>
</div>
</body>
</html>
查询所有用户:
增加联系人页面:
修改联系人页面:
删除页面:
项目整体流程如上,因源码比较多展示不太方便,如有需要请留言~