基于Java web的用戶管理系統開發(可直接跳到實作步驟)(小白也行)
- 1、業務及其需求分析
- 1、實作以下功能
- 2、使用以下技術
- 2、簡單成品展示
- 1、登錄功能與簡單界面
- 2、頁面查詢功能
- 3、添加功能
- 4、單個用戶洗掉功能
- 5、用戶修改功能
- 6、選中批量洗掉功能
- 3、==實作步驟及其方法(重點必看)(一步一步對應實作)==*****
- 1、用戶查詢功能
- 1、封裝User 類
- 2、改造的index.jsp并去到servlet中
- 3、創建userListServlet(什么都不干)和UserService 介面
- 4、service中創建子包impl定義介面實作 類 (UserServiceImpl)
- 5、dao中創建 介面 UserDao
- 6、dao中的子包impl中創建定義介面實作的 類 (UserDaoImpl)
- 7、UserServiceImpl中創建new實作類
- 8、再來userListServlet中
- 9、jsp的list.jsp顯示頁面
- 2、登錄功能及其驗證碼的加載及其切換
- 1、加載驗證碼,超鏈接形式點擊切換
- 2、創建LoginServlet
- 3、來到service下的UserService中創建介面
- 4、、來到service下impl中的UserServiceImpl中實作類
- 5、dao中的UserDao中創建介面
- 6、dao中impl中實作類方法(操作資料庫庫的sql)
- 3、用戶添加功能
- 1、修改按鈕跳轉頁面
- 2、添加表單提交的action
- 3、創建AddUserServlet
- 4、在service下的UserService中創建介面
- 5、在service下impl包的UserServiceImpl中實作類
- 6、dao下的UserDao中創建介面
- 7、dao下impl包的UserDaoImpl實作類
- 3、洗掉功能
- 1、修改訪問路徑(根據id洗掉資料)
- 2、創建DelUserServlet
- 3、在service下的UserService中創建介面
- 4、在service下impl包的UserServiceImpl中實作類
- 5、dao下的UserDao中創建介面
- 6、dao下impl包的UserDaoImpl實作類
- 7、增強用戶體驗感(洗掉是給出提示框)
- 5、修改功能
- 1、修改按鈕的頁面跳轉
- 2、撰寫FindUserServlet
- 3、service中UserService創建 介面 方法
- 4、service中impl下UserServiceImpl創建實作 類 的方法
- 5、Dao中UserDao創建介面方法
- 6、創建對應的實作類
- 7、去update中回顯資訊(重點看value和c:if中的代碼)
- 8、表單提交方式及其隱藏域(一定要有)
- 9、創建UpdateUserServlet
- 10、service中UserService創建 介面 方法
- 11、service中impl下UserServiceImpl創建實作 類 的方法(注意沒有回傳值)
- 12、Dao中UserDao創建介面方法
- 13、dao下impl包的UserDaoImpl實作類(沒有回傳值)
- 6、選中批量洗掉
- 1、給提交資料加form和復選框加name
- 2、給洗掉選中系結單擊事件
- 3、創建撰寫DelSelectedServlet
- 4、service中UserService創建 介面 方法
- 5、service中impl下UserServiceImpl創建實作 類 的方法
- 6、實作全選
- 4、資料庫欄位部分
- 5、結語及其聯系方式
1、業務及其需求分析
1、實作以下功能
1、用戶的查詢功能
2、用戶的添加功能
2、用戶的登錄功能
3、用戶的洗掉功能
4、用戶的修改功能
5、用戶的批量洗掉功能
2、使用以下技術
JSP+Servlet(request、response、session)+javaBean+druid連接池技術+JdbcTemplate+MySQL+MVC開發模式(開發工具為IDEA)

2、簡單成品展示
1、登錄功能與簡單界面


2、頁面查詢功能

3、添加功能

4、單個用戶洗掉功能

5、用戶修改功能

6、選中批量洗掉功能

3、實作步驟及其方法(重點必看)(一步一步對應實作)*****
1、用戶查詢功能

代碼結構:

1、封裝User 類
package com.entity;
public class User {
private int id;
private String name;
private String gender;
private int age;
private String address;
private String qq;
private String email;
setter and getter方法
toString方法
}
2、改造的index.jsp并去到servlet中
<a
href="${pageContext.request.contextPath}/userListServlet" style="text-decoration:none;font-size:33px">查詢所有用戶資訊
</a>
3、創建userListServlet(什么都不干)和UserService 介面
public interface UserService {
/**
* 查詢所有用戶資訊
*/
public List<User> findAll();
}
4、service中創建子包impl定義介面實作 類 (UserServiceImpl)
public class UserServiceImpl implements UserService {
public List<User> findAll(){
//呼叫dao完成查詢
return ;
}
}
5、dao中創建 介面 UserDao
/**
* 用戶操作的dao
*/
public interface UserDao {
public List<User> findAll();
}
6、dao中的子包impl中創建定義介面實作的 類 (UserDaoImpl)
public class UserDaoImpl implements UserDao {
private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public List<User> findAll() {
//使用jdbc操作資料庫
//1、定義sql
String sql="select*from user";
List<User> users = template.query(sql, new BeanPropertyRowMapper<User>(User.class));
return users;
}
}
7、UserServiceImpl中創建new實作類
public class UserServiceImpl implements UserService {
private UserDao dao=new UserDaoImpl();
@Override
public List<User> findAll(){
//呼叫dao完成查詢
return dao.findAll();
}
}
8、再來userListServlet中
doPost中:
//1、呼叫UserService完成查詢
UserService service=new UserServiceImpl();
List<User> users = service.findAll();
//2、將list存入request中
request.setAttribute("users",users);
//3、轉發到list.jsp
request.getRequestDispatcher("/list.jsp").forward(request,response);
9、jsp的list.jsp顯示頁面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<body>
<div class="container">
<h3 style="text-align: center">用戶資訊串列</h3>
<form id="form" action="" method="post">
<table align="center" cellpadding="2px" cellspacing="2px" border="1">
<tr>
<td><input type="checkbox"></td>
<th>編號</th>
<th>姓名</th>
<th>性別</th>
<th>年齡</th>
<th>籍貫</th>
<th>QQ</th>
<th>郵箱</th>
<th>操作</th>
</tr>
<c:forEach items="${users}" var="user" varStatus="s">
<tr>
<td><input type="checkbox"></td>
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.gender}</td>
<td>${user.age}</td>
<td>${user.address}</td>
<td>${user.qq}</td>
<td>${user.email}</td>
<td><a class="btn btn-default btn-sm" href="#">修改</a> <a
class="btn btn-default btn-sm" href="#">洗掉</a></td>
</tr>
</c:forEach>
</table>
</form>
</div>
</body>
2、登錄功能及其驗證碼的加載及其切換
1、加載驗證碼,超鏈接形式點擊切換
//在session中存入當前的code碼,便于驗證
request.getSession().setAttribute("checkCode",code);
加載好驗證碼后實作切換:
<script type="text/javascript">
//切換驗證碼
function refreshCode(){//超鏈接的方法
//1.獲取驗證碼圖片物件
var img = document.getElementById("checkCode");
//2.設定其src屬性,加時間戳
img.src = "${pageContext.request.contextPath}/checkCodeServlet?time="+new Date().getTime();
}
</script>
<a href="javascript:refreshCode();">
<img src="${pageContext.request.contextPath}/checkCodeServlet" title="看不清點擊重繪" id="checkCode"/></a>
2、創建LoginServlet
邏輯:
//1.設定編碼
request.setCharacterEncoding("utf-8");
//2.獲取資料
//3.驗證碼校驗
//4.封裝User物件
//5.呼叫Service查詢
//6、判斷是否登錄成功
doPost中的代碼:
//1.設定編碼
request.setCharacterEncoding("utf-8");
//2.獲取資料
//2.1獲取用戶填寫驗證碼
String verifycode = request.getParameter("verifycode");//jsp中驗證碼的name
//3、驗證碼的校驗
HttpSession session = request.getSession();
String code = (String)session.getAttribute("checkCode");//CheckCodeServlet中的值
session.removeAttribute("checkCode");//確保驗證碼一次性
if (!code.equalsIgnoreCase(verifycode)){
//驗證碼不正確
//提示資訊
request.setAttribute("login_msg","驗證碼錯誤!");
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
Map<String, String[]> map = request.getParameterMap();
//4、封裝User物件
User user=new User();
try {
BeanUtils.populate(user,map);//JavaBean
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//5、呼叫service查詢
UserServiceImpl service = new UserServiceImpl();
User loginUser=service.login(user);
//撰寫到這里后報錯,原因service中沒有這個方法,接下來到service中創建方法
//6、判斷是否登錄成功
if (loginUser!=null){
//登錄成功
//將用戶存入session
session.setAttribute("user",loginUser);
//跳轉頁面
response.sendRedirect(request.getContextPath()+"/index.jsp");
}else {
//登錄失敗
request.setAttribute("login_msg","用戶名或密碼錯誤!");
request.getRequestDispatcher("/login.jsp").forward(request,response);
}
3、來到service下的UserService中創建介面
public interface UserService {
/**
* 登錄方法
*/
User login(User user);
}
4、、來到service下impl中的UserServiceImpl中實作類
public class UserServiceImpl implements UserService {
private UserDao dao=new UserDaoImpl();
public User login(User user) {
return dao.findUserByUsernameAndPassword(user.getUsername(),user.getPassword());
}
//現在應該回傳null(要在dao中的介面中創建介面才行),這里省略,一步到位了
}
5、dao中的UserDao中創建介面
/**
* 用戶操作的dao
*/
public interface UserDao {
User findUserByUsernameAndPassword(String username, String password);
}
6、dao中impl中實作類方法(操作資料庫庫的sql)
public class UserDaoImpl implements UserDao {
private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
public User findUserByUsernameAndPassword(String username, String password) {
try {
String sql = "select * from user where username = ? and password = ?";
User user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), username, password);
return user;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
//如果不try catch用戶名或密碼錯誤會報500的錯誤
再次回來LoginServlet中撰寫
3、用戶添加功能
邏輯圖

1、修改按鈕跳轉頁面
<a class="btn btn-primary" href="${pageContext.request.contextPath}/add.jsp">添加聯系人</a>
2、添加表單提交的action
<form action="${pageContext.request.contextPath}/addUserServlet" method="post">
3、創建AddUserServlet
doPost中:
//1、設定編碼
request.setCharacterEncoding("utf-8");
//2、獲取引數
Map<String, String[]> map = request.getParameterMap();
//3、封裝物件
User user=new User();
try {
BeanUtils.populate(user,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//4、呼叫Service保存
UserService service=new UserServiceImpl();
service.addUser(user);//到這里會報錯,也可以接在寫
//5、跳轉到userListServlet
response.sendRedirect(request.getContextPath()+"/userListServlet");
4、在service下的UserService中創建介面
public interface UserService {
/**
*保存User方法
*/
void addUser(User user);
}
5、在service下impl包的UserServiceImpl中實作類
public class UserServiceImpl implements UserService {
private UserDao dao=new UserDaoImpl();
@Override
public void addUser(User user) {
dao.add(user);
}
}
6、dao下的UserDao中創建介面
public interface UserDao {
void add(User user);
}
7、dao下impl包的UserDaoImpl實作類
public class UserDaoImpl implements UserDao {
private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public void add(User user) {
//1、定義sql
String sql="insert into user values(null,?,?,?,?,?,?,null,null)";
//2、執行sql
template.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail());
}
}
3、洗掉功能

1、修改訪問路徑(根據id洗掉資料)
<a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/delUserServlet?id=${user.id}">洗掉</a>
2、創建DelUserServlet
doPost:
//1、獲取id
String id=request.getParameter("id");
//2、呼叫service洗掉
UserService service=new UserServiceImpl();
service.deleteUser(id);
//跳轉到查詢所有的UserListServlet
response.sendRedirect(request.getContextPath()+"/userListServlet");
3、在service下的UserService中創建介面
public interface UserService {
/**
* 根據id洗掉
*/
void deleteUser(String id);
}
4、在service下impl包的UserServiceImpl中實作類
public class UserServiceImpl implements UserService {
private UserDao dao=new UserDaoImpl();
@Override
public void deleteUser(String id) {
dao.delete(Integer.parseInt(id));//轉為數字型別
}
}
5、dao下的UserDao中創建介面
public interface UserDao {
void delete(int i);
}
6、dao下impl包的UserDaoImpl實作類
public class UserDaoImpl implements UserDao {
private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public void delete(int id) {
//1、定義sql
String sql="delete from user where id=?";
template.update(sql,id);
}
}
7、增強用戶體驗感(洗掉是給出提示框)
<script>
function deleteUser(id) {
//用戶安全提示
if (confirm("您確定洗掉嗎?")){
location.href="${pageContext.request.contextPath}/delUserServlet?id="+id;
}
}
</script>
<td>
<a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id}); ">洗掉</a>
</td>
5、修改功能
邏輯圖:

回顯資訊:
1、修改按鈕的頁面跳轉
<td>
<a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a>
</td>
2、撰寫FindUserServlet
doPost:
//1、獲取id
String id = request.getParameter("id");
//2、呼叫service查詢
UserService service = new UserServiceImpl();
User user=service.findUserById(id);
//3、將user存入request
request.setAttribute("user",user);
//4、轉發到update.jsp
request.getRequestDispatcher("/update.jsp").forward(request,response);
3、service中UserService創建 介面 方法
public interface UserService {
/**
* 根據id查詢
* @param id
*/
User findUserById(String id);
}
4、service中impl下UserServiceImpl創建實作 類 的方法
public class UserServiceImpl implements UserService {
private UserDao dao=new UserDaoImpl();
@Override
public User findUserById(String id) {
return dao.findById(Integer.parseInt(id));//轉為數字型別
}
}
5、Dao中UserDao創建介面方法
public interface UserDao {
User findById(int i);
}
6、創建對應的實作類
public class UserDaoImpl implements UserDao {
private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public User findById(int id) {
String sql="select*from user where id=?";
return template.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),id);
}
}
7、去update中回顯資訊(重點看value和c:if中的代碼)
<div class="form-group">
<label for="name">姓名:</label>
<input type="text" class="form-control" id="name" name="name" value="${user.name}" readonly="readonly" placeholder="請輸入姓名" />
</div>
<div class="form-group">
<label>性別:</label>
<c:if test="${user.gender == '男'}">
<input type="radio" name="gender" value="男" checked />男
<input type="radio" name="gender" value="女" />女
</c:if>
<c:if test="${user.gender == '女'}">
<input type="radio" name="gender" value="男" />男
<input type="radio" name="gender" value="女" checked />女
</c:if>
</div>
<div class="form-group">
<label for="age">年齡:</label>
<input type="text" class="form-control" value="${user.age}" id="age" name="age" placeholder="請輸入年齡" />
</div>
<div class="form-group">
<label for="address">籍貫:</label>
<select name="address" id="address" class="form-control" >
<c:if test="${user.address == '陜西'}">
<option value="陜西" selected>陜西</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
</c:if>
<c:if test="${user.address == '北京'}">
<option value="陜西" >陜西</option>
<option value="北京" selected>北京</option>
<option value="上海">上海</option>
</c:if>
<c:if test="${user.address == '上海'}">
<option value="陜西" >陜西</option>
<option value="北京">北京</option>
<option value="上海" selected>上海</option>
</c:if>
</select>
</div>
<div class="form-group">
<label for="qq">QQ:</label>
<input type="text" id="qq" class="form-control" value="${user.qq}" name="qq" placeholder="請輸入QQ號碼"/>
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="text" id="email" class="form-control" value="${user.email}" name="email" placeholder="請輸入郵箱地址"/>
</div>
用戶修改:
8、表單提交方式及其隱藏域(一定要有)
<form action="${pageContext.request.contextPath}/updateUserServlet" method="post">
<!-- 隱藏域 提交id-->
<input type="hidden" name="id" value="${user.id}">
//注意影藏域
<div class="form-group">
<label for="name">姓名:</label>
<input type="text" class="form-control" id="name" name="name" value="${user.name}" readonly="readonly" placeholder="請輸入姓名" />
</div>
<div class="form-group">
<label>性別:</label>
<c:if test="${user.gender == '男'}">
<input type="radio" name="gender" value="男" checked />男
<input type="radio" name="gender" value="女" />女
</c:if>
<c:if test="${user.gender == '女'}">
<input type="radio" name="gender" value="男" />男
<input type="radio" name="gender" value="女" checked />女
</c:if>
</div>
<div class="form-group">
<label for="age">年齡:</label>
<input type="text" class="form-control" value="${user.age}" id="age" name="age" placeholder="請輸入年齡" />
</div>
<div class="form-group">
<label for="address">籍貫:</label>
<select name="address" id="address" class="form-control" >
<c:if test="${user.address == '陜西'}">
<option value="陜西" selected>陜西</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
</c:if>
<c:if test="${user.address == '北京'}">
<option value="陜西" >陜西</option>
<option value="北京" selected>北京</option>
<option value="上海">上海</option>
</c:if>
<c:if test="${user.address == '上海'}">
<option value="陜西" >陜西</option>
<option value="北京">北京</option>
<option value="上海" selected>上海</option>
</c:if>
</select>
</div>
<div class="form-group">
<label for="qq">QQ:</label>
<input type="text" id="qq" class="form-control" value="${user.qq}" name="qq" placeholder="請輸入QQ號碼"/>
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="text" id="email" class="form-control" value="${user.email}" name="email" placeholder="請輸入郵箱地址"/>
</div>
<div class="form-group" style="text-align: center">
<input class="btn btn-primary" type="submit" value="提交" />
<input class="btn btn-default" type="reset" value="重置" />
<input class="btn btn-default" type="button" value="回傳"/>
</div>
</form>
9、創建UpdateUserServlet
doPost中:
request.setCharacterEncoding("utf-8");
//2、獲取map
Map<String, String[]> map = request.getParameterMap();
//3、封裝物件
User user=new User();
try {
BeanUtils.populate(user,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//4、呼叫Service修改
UserService service=new UserServiceImpl();
service.updateUser(user);
//5、跳轉到查詢所有Servlet
response.sendRedirect(request.getContextPath()+"/userListServlet");
10、service中UserService創建 介面 方法
public interface UserService {
/**
* 修改用戶資訊
* @param user
*/
void updateUser(User user);
}
11、service中impl下UserServiceImpl創建實作 類 的方法(注意沒有回傳值)
public class UserServiceImpl implements UserService {
private UserDao dao=new UserDaoImpl();
@Override
public void updateUser(User user) {
dao.update(user);
}
}
12、Dao中UserDao創建介面方法
public interface UserDao {
void update(User user);
}
13、dao下impl包的UserDaoImpl實作類(沒有回傳值)
public class UserDaoImpl implements UserDao {
private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public void update(User user) {
String sql="update user set name=?,gender=?,age=?,address=?,qq=?,email=? where id=?";
template.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail(),user.getId());
}
}
6、選中批量洗掉
邏輯:

1、給提交資料加form和復選框加name
<form id="form" action="${pageContext.request.contextPath}/delSelectedServlet" method="post">
<table border="1" class="table table-bordered table-hover">
<tr class="success">
<td><input type="checkbox" id="firstCb"></td>
<th>編號</th>
<th>姓名</th>
<th>性別</th>
<th>年齡</th>
<th>籍貫</th>
<th>QQ</th>
<th>郵箱</th>
<th>操作</th>
</tr>
<c:forEach items="${users}" var="user" varStatus="s">
<tr>
<td><input type="checkbox" name="uid" value="${user.id}"></td>
<%--value就是這條資料的id--%>
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.gender}</td>
<td>${user.age}</td>
<td>${user.address}</td>
<td>${user.qq}</td>
<td>${user.email}</td>
<td>
<a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a>
<a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id}); ">洗掉</a>
</td>
</tr>
</c:forEach>
</table>
</form>
2、給洗掉選中系結單擊事件
<script>
window.οnlοad=function () {
//給洗掉選中按鈕添加單機事件
document.getElementById("delSelected").οnclick=function () {
//提交表單
document.getElementById("form").submit();
}
</script>
<div style="float: right;margin: 5px;">
<a class="btn btn-primary" href="javascript:void(0);" id="delSelected">洗掉選中</a><%--系結事件--%>
</div>
3、創建撰寫DelSelectedServlet
//1、獲取所有id
String[] ids = request.getParameterValues("uid");
//2、呼叫service洗掉
UserService service=new UserServiceImpl();
service.delSelectedUser(ids);;
//3、跳轉到查詢所有Servlet
response.sendRedirect(request.getContextPath()+"/userListServlet");
4、service中UserService創建 介面 方法
public interface UserService {
/**
* 批量洗掉用戶
* @param ids
*/
void delSelectedUser(String[] ids);
}
5、service中impl下UserServiceImpl創建實作 類 的方法
public class UserServiceImpl implements UserService {
private UserDao dao=new UserDaoImpl();
@Override
public void delSelectedUser(String[] ids) {
if (ids!=null&&ids.length>0){//防止空指標例外
//1、遍歷陣列
for (String id:ids){
//2、呼叫dao洗掉
dao.delete(Integer.parseInt(id));
//洗掉的dao已經有了
}
}
}
}
6、實作全選
<script>
window.οnlοad=function () {
//給洗掉選中按鈕添加單機事件
document.getElementById("delSelected").οnclick=function () {
if (confirm("您確定要洗掉選中條目嗎?")){
var flag=false;
//判斷是否有選中條目,防止一條都沒有選中出現空指標例外
var cbs=document.getElementsByName("uid");
for (var i=0;i<cbs.length;i++){//
if (cbs[i].checked){
//有一條選中了
flag=true;
break;
}
}
if (flag){//有條目被選中才執行以下操作
//完成表單提交
document.getElementById("form").submit();
}
}
}
//1、獲取第一個cb,實作全選
document.getElementById("firstCb").οnclick=function () {
//2、獲取下邊串列的所有cb
var cbs=document.getElementsByName("uid");
//3、遍歷
for(var i=0;i<cbs.length;i++){
//4、設定這些cbs[i]的checked狀態=firstCb.checked
cbs[i].checked=this.checked;
}
}
}
</script>
<form id="form" action="${pageContext.request.contextPath}/delSelectedServlet" method="post">
<table border="1" class="table table-bordered table-hover">
<tr class="success">
<td><input type="checkbox" id="firstCb"></td>
<%--讓以下的復選框狀態都和第一個保持一致--%>
<th>編號</th>
<th>姓名</th>
<th>性別</th>
<th>年齡</th>
<th>籍貫</th>
<th>QQ</th>
<th>郵箱</th>
<th>操作</th>
</tr>
<c:forEach items="${users}" var="user" varStatus="s">
<tr>
<td><input type="checkbox" name="uid" value="${user.id}"></td>
<%--value就是這條資料的id--%>
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.gender}</td>
<td>${user.age}</td>
<td>${user.address}</td>
<td>${user.qq}</td>
<td>${user.email}</td>
<td>
<a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a>
<a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id}); ">洗掉</a>
</td>
</tr>
</c:forEach>
</table>
</form>
4、資料庫欄位部分

5、結語及其聯系方式
該管理系統所用到的技術也就是上述中提到的技術,主要完成的的功能就是對資料的一些增、刪、改、查,對于java web的開發是最基本的操作,該管理系統主要適合小白,對于java大神當然可以忽略了,
在學習的程序中重點提醒做筆記,推薦的做筆記軟體是typora
只用記錄重點自己看得到懂的就好了eg:

對于該管理系統如果需要原始碼的可以私信我或者添加QQ或者微信咨詢,
對于原始碼呢,就當做是寫文章推廣的辛苦費的,可能需要的小伙伴出一點肉錢了(2.22)
微信號:ych520cyy
或是qq:3364193252(盡量是qq,微信加多了我微信會被加過多,賬號例外等問題)
需要該管理系統的原始碼的話,在添加的會后請備注“System”或者“管理系統”

如需其他的代碼(前端開發有趣代碼(玩的))也可以私信(那你就要少一到二頓飯了喲)


以下是專門挑選出來玩的送女朋友之類的(也是需要少吃一到二頓飯咯喲)

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/301501.html
標籤:java
上一篇:Spring
下一篇:C++實作高并發記憶體池
