前言
我在大二暑假初期(2022年6月)学习完jQuery,便开始了JavaWeb和MySQL的学习,第一次前后端碰面,真真切切的见识到了编程的魅力,也让我更加深刻的认识到编程的水不是一般的深。经过两个月的学习,最终决定做书城管理系统来作为JavaWeb阶段的收尾作品,下面带大家浅浅了解一下JavaWeb作品叭。
视频介绍
B站传送门:JavaWeb作品介绍
需要具备的技术
- Java
- Servlet
- JSP
- HTTP
- MySQL
- JDBC
- HTML
- CSS
- JavaScript
主要功能实现
- 用户和管理员的登录
- 注册、登录、注销的功能
- 注册、登录的校验信息回显
- 用户购买书、修改密码、查询图书
- 管理修改书价格、种类、库存等,重置用户密码
- 支持模糊查询、多条件查询
部分代码
管理员修改图书信息
/**
* 后台当中的修改图书
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void doEditBook(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
String name = request.getParameter("name");
String author = request.getParameter("author");
String price = request.getParameter("price");
String sales = request.getParameter("sales");
String stock = request.getParameter("stock");
int count = 0;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
String sql = "update t_book set name = ?, author = ?, price = ?, sales = ?, stock = ? where id = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, author);
ps.setString(3, price);
ps.setString(4, sales);
ps.setString(5, stock);
ps.setString(6, id);
count = ps.executeUpdate();
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
DBUtil.close(conn, ps, rs);
}
if (count == 1) {
response.sendRedirect(request.getContextPath() + "/user/manager");
}
}
管理员添加图书
/**
* 后台当中的添加图书
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void doAddBook(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String author = request.getParameter("author");
String price = request.getParameter("price");
String sales = request.getParameter("sales");
String stock = request.getParameter("stock");
int count = 0;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
String sql = "insert into t_book(name,author,price,sales,stock) values (?,?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, author);
ps.setString(3, price);
ps.setString(4, sales);
ps.setString(5, stock);
count = ps.executeUpdate();
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
DBUtil.close(conn, ps, rs);
}
//添加成功,重定向到/user/manager,执行doManager方法,再重定向到manager.jsp页面进行数据的展示
if (count == 1) {
response.sendRedirect(request.getContextPath() + "/user/manager");
}
}
管理员删除图书
/**
* 后台当中的删除图书
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void doDelBook(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
int count = 0;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
String sql = "delete from t_book where id = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, id);
count = ps.executeUpdate();
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
DBUtil.close(conn, ps, rs);
}
//删除成功,重定向到/user/manager,执行doManager方法,再重定向到manager.jsp页面进行数据的展示
if (count == 1) {
response.sendRedirect(request.getContextPath() + "/user/manager");
}
}
用户通过价格查询图书
/**
* 通过价格实现查询的功能的方法
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void doSearchBook(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Book> books = new ArrayList<>();
String minprice = request.getParameter("minprice");
String maxprice = request.getParameter("maxprice");
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
String sql = "select id,name,author,price,sales,stock from t_book where price >=? and price <=? order by price";
ps = conn.prepareStatement(sql);
ps.setString(1, minprice);
ps.setString(2, maxprice);
rs = ps.executeQuery();
while (rs.next()) {
String id = rs.getString("id");
String name = rs.getString("name");
String author = rs.getString("author");
String price = rs.getString("price");
String sales = rs.getString("sales");
String stock = rs.getString("stock");
//将上面的数据封装成java对象
Book book = new Book();
book.setId(id);
book.setName(name);
book.setAuthor(author);
book.setPrice(price);
book.setSales(sales);
book.setStock(stock);
//将数据放到集合当中
books.add(book);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
DBUtil.close(conn, ps, rs);
}
//将一个集合放到请求域当中
request.setAttribute("bookManager", books);
//转发
request.getRequestDispatcher("/search.jsp").forward(request, response);
}
用户通过书名进行查询图书
/**
* 通过书名实现的查询(模糊查询)
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void doSearchBookByName(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String bookName = request.getParameter("bookName");
String authorName = request.getParameter("authorName");
bookName = "%" + bookName + "%";
authorName = "%" + authorName + "%";
List<Book> books = new ArrayList<>();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
String sql ="";
if (bookName!="%%"&&authorName!="%%") {
sql ="SELECT id,name ,author,price,sales,stock FROM t_book WHERE NAME LIKE ? and author LIKE ? ";
}
else {
sql ="SELECT id,name ,author,price,sales,stock FROM t_book WHERE NAME LIKE ? or author LIKE ? ";
}
ps = conn.prepareStatement(sql);
ps.setString(1, bookName);
ps.setString(2, authorName);
rs = ps.executeQuery();
while (rs.next()) {
String id = rs.getString("id");
String name = rs.getString("name");
String author = rs.getString("author");
String price = rs.getString("price");
String sales = rs.getString("sales");
String stock = rs.getString("stock");
//将上面的数据封装成java对象
Book book = new Book();
book.setId(id);
book.setName(name);
book.setAuthor(author);
book.setPrice(price);
book.setSales(sales);
book.setStock(stock);
//将数据放到集合当中
books.add(book);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
DBUtil.close(conn, ps, rs);
}
//获取session
HttpSession session = request.getSession();
//判断session中的对象是否为空(是否是登录过的)
if (session.getAttribute("userObj")!=null) {
//input当中什么都没有输入
if (bookName.equals("%%")) {
response.sendRedirect(request.getContextPath() + "/user/welcome");
} else {
//将一个集合放到请求域当中
request.setAttribute("bookManager", books);
//转发
request.getRequestDispatcher("/search.jsp").forward(request, response);
}
}else {
//重定向到欢迎页
response.sendRedirect(request.getContextPath() );
}
}