“src”结构
登录“LoginServlet.java”
package com.zhongruan.servlet;
import com.zhongruan.service.IUserService;
import com.zhongruan.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
String password=request.getParameter("password");
IUserService userService=new UserServiceImpl();
Boolean flag=userService.login(username,password);
if (flag){
request.getRequestDispatcher("/find").forward(request,response);
}else {
request.getRequestDispatcher("failure.jsp").forward(request,response);
}
}
}
查询“FindServlet.java”使用“doPost”和“doGet”两种方法
package com.zhongruan.servlet;
import com.zhongruan.model.User;
import com.zhongruan.service.IUserService;
import com.zhongruan.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
public class FindServlet extends HttpServlet {
IUserService userService=new UserServiceImpl();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<User> users=userService.findAll();
HttpSession session=request.getSession();
session.setAttribute("userlist",users);
request.getRequestDispatcher("allUser.jsp").forward(request,response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<User> users=userService.findAll();
HttpSession session=request.getSession();
session.setAttribute("userlist",users);
request.getRequestDispatcher("allUser.jsp").forward(request,response);
}
}
删除“DeleteServlet.java”
package com.zhongruan.servlet;
import com.zhongruan.service.IUserService;
import com.zhongruan.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class DeleteServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
IUserService userService=new UserServiceImpl();
int id= Integer.parseInt((request.getParameter("id")));
userService.delete(id);
request.getRequestDispatcher("/find").forward(request,response);
}
}
增加“AddServlet.java”
package com.zhongruan.servlet;
import com.zhongruan.service.IUserService;
import com.zhongruan.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class AddServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
IUserService userService=new UserServiceImpl();
String username=request.getParameter("username");
String password=request.getParameter("password");
userService.add(username,password);
request.getRequestDispatcher("/find").forward(request,response);
}
}
“UserDaoImpl.java”
package com.zhongruan.dao.impl;
import com.zhongruan.dao.IUserDao;
import com.zhongruan.model.User;
import com.zhongruan.util.DBUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class UserDaoImpl implements IUserDao {
@Override
public User findUserByUsername(String username) {
User user=null;
ResultSet resultSet=null;
PreparedStatement statement=null;
Connection connection=null;
try {
connection= DBUtil.getConnection();
//3.写sql
String sql="select * from tb_user where username=?";
//4.创建statement对象
statement=connection.prepareStatement(sql);
statement.setString(1,username);
//5.执行sql
resultSet=statement.executeQuery();
//6.处理结果集
while (resultSet.next()){
user=new User();
user.setId(resultSet.getInt(1));
user.setUsername(username);
user.setPassword(resultSet.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//7.关闭资源
DBUtil.closeAll(resultSet,statement,connection);
}
return user;
}
@Override
public List<User> findAll(){
List<User> users=new ArrayList<>();
Connection connection=null;
PreparedStatement statement=null;
ResultSet resultSet=null;
try {
connection=DBUtil.getConnection();
String sql="select * from tb_user";
statement=connection.prepareStatement(sql);
resultSet=statement.executeQuery();
while (resultSet.next()){
User user=new User();
user.setId(resultSet.getInt(1));
user.setUsername(resultSet.getString(2));
user.setPassword(resultSet.getString(3));
users.add(user);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.closeAll(resultSet,statement,connection);
}
return users;
}
@Override
public void delete(int id) {
Connection connection=null;
PreparedStatement statement=null;
try {
connection = DBUtil.getConnection();
String sql="delete from tb_user where id = ?";
statement=connection.prepareStatement(sql);
statement.setInt(1,id);
statement.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
DBUtil.closeAll(null,statement,connection);
}
@Override
public void add(String username,String password) {
PreparedStatement statement=null;
Connection connection=null;
try {
connection= DBUtil.getConnection();
String sql="insert into tb_user (username,password) value (?,?)";
statement=connection.prepareStatement(sql);
statement.setString(1,username);
statement.setString(2,password);
statement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.closeAll(null,statement,connection);
}
}
}
“IUserDao.java”
package com.zhongruan.dao;
import com.zhongruan.model.User;
import java.util.List;
public interface IUserDao {
User findUserByUsername(String username);
List<User> findAll();
void delete(int id);
void add(String username,String password);
}
“UserServiceImpl.java”
package com.zhongruan.service.impl;
import com.zhongruan.dao.IUserDao;
import com.zhongruan.dao.impl.UserDaoImpl;
import com.zhongruan.model.User;
import com.zhongruan.service.IUserService;
import java.util.List;
public class UserServiceImpl implements IUserService {
IUserDao userDao=new UserDaoImpl();
@Override
public Boolean login(String username, String password) {
User user=userDao.findUserByUsername(username);
if (user!=null&&user.getPassword().equals(password)){
return true;
}else {
return false;
}
}
@Override
public List<User> findAll() {
List<User> users=userDao.findAll();
return users;
}
@Override
public void delete(int id) {
userDao.delete(id);
}
@Override
public void add(String username, String password) {
userDao.add(username,password);
}
}
“IUserService.java”
package com.zhongruan.service;
import com.zhongruan.model.User;
import java.util.List;
public interface IUserService {
Boolean login(String username,String password);
List<User> findAll();
void delete(int id);
void add(String username,String password);
}
“web”结构
登录页面“index.jsp”
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/9/25
Time: 10:51
To change this template use File | Settings | File Templates.
--%>
<%@ 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">
<title>login</title>
<link rel="stylesheet" type="text/css" href="css/normalize.css" />
<link rel="stylesheet" type="text/css" href="css/demo.css" />
<!--必要样式-->
<link rel="stylesheet" type="text/css" href="css/component.css" />
<!--[if IE]>
<script src="js/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="container demo-1">
<div class="content">
<div id="large-header" class="large-header">
<canvas id="demo-canvas"></canvas>
<div class="logo_box">
<h3>欢迎你</h3>
<form action="/login" name="f" method="post">
<div class="input_outer">
<span class="u_user"></span>
<input name="username" class="text" style="color: #FFFFFF !important" type="text" placeholder="请输入账户">
</div>
<div class="input_outer">
<span class="us_uer"></span>
<input name="password" class="text" style="color: #FFFFFF !important; position:absolute; z-index:100;"value="" type="password" placeholder="请输入密码">
</div>
<div class="mb2"><input class="act-but submit" style="color: #FFFFFF" type="submit" value="登录"></div>
</form>
</div>
</div>
</div>
</div><!-- /container -->
<script src="js/TweenLite.min.js"></script>
<script src="js/EasePack.min.js"></script>
<script src="js/rAF.js"></script>
<script src="js/demo-1.js"></script>
<div style="text-align:center;">
</div>
</body>
</html>
效果图如下
登录失败页面“failure.jsp”(用户名或密码错误)
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/9/25
Time: 11:01
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
登录失败
</body>
</html>
列表页面“allUser.jsp”
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>user列表</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入 Bootstrap -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<h1>
基于servlet+jsp框架的管理系统:简单实现增、删、改、查。
</h1>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<h1>
<small>用户列表 —— 显示所有用户</small>
</h1>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4 column">
<a class="btn btn-primary" href="addUser.jsp">新增</a>
</div>
</div>
<div class="row clearfix">
<div class="col-md-12 column">
<table class="table table-hover table-striped">
<thead>
<tr>
<th>id</th>
<th>用户名</th>
<th>密码</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userlist}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.password}</td>
<td>
<a href="/delete?id=${user.id}">删除</a>|
<a href="#">修改</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
效果图如下
点击“删除”,会删除点击的那一条,呈现删除后的页面(例:删除id为10)
添加用户页面“addUser.jsp”
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>新增用户</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入 Bootstrap -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<h1>
基于servlet+jsp框架的管理系统:简单实现增、删、改、查。
</h1>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<h1>
<small>新增用户</small>
</h1>
</div>
</div>
</div>
<form action="/add" method="post">
<!--用 户 id:<input type="text" name="id"><br><br><br>-->
用户姓名:<input type="text" name="username"><br><br><br>
用户密码:<input type="text" name="password"><br><br><br>
<input type="submit" value="添加" >
</form>
</div>
点击“新增”,跳转页面如下
点击“添加”,跳转页面如下
在这里插入图片描述