基于javaweb+jsp的图书管理系统

基于javaweb+jsp的图书管理系统
JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript Bootstrap
基础JSP+Servlet或JSP+SSM(Spring、SpringMVC、MyBatis)框架或JSP+SSM+Maven(pom.xml)框架或SpringBoot…均可
【基于javaweb+jsp的图书管理系统】开发工具:eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计 , 大作业 , 毕业设计 , 项目练习 , 学习演示等
type="text/javascript">//提交之前进行检查 , 如果return false , 则不允许提交function check() {//根据ID获取值if (document.getElementById("readerName").value.trim().length == 0) {alert("姓名不能为空!");return false; vo.setUserSex(rs.getString("user_sex"));vo.setUserPhone(rs.getString("user_phone"));vo.setUserText(rs.getString("user_text"));vo.setUserType(rs.getString("user_type"));list.add(vo);}String sqlCount = "select count(*) from `t_user` where 1=1 " + condition;ps = c.prepareStatement(sqlCount);rs = ps.executeQuery();if (rs.next()) {totalCount = rs.getInt(1);}rs.close();ps.close();c.close();} catch (Exception e) {e.printStackTrace();}Map result = new HashMap();result.put("list", list);result.put("totalCount", totalCount);return result;}} //@WebServlet("/ReaderServlet")public class ReaderServlet extends HttpServlet {/*** 处理Post请求** @param request* @param response* @throws ServletException* @throws IOException*/@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List list = (List) userService.list(params).get("list");for (User user : list) {if (user.getUsername().equals(username) /*&& user.getPassword().equals(password)*/) {//说明该用户名已存在 , 必须换个用户名才能注册request.getSession().setAttribute("alert_msg", "错误:用户名已存在!");request.getRequestDispatcher("register.jsp").forward(request, response);return;}}User vo = new User();vo.setUsername(username);vo.setPassword(password);//vo.setUserType("普通用户");//需要设置一个默认值userService.add(vo);request.getSession().setAttribute("alert_msg", "注册成功!用户名:[" + username + "]");request.getRequestDispatcher("login.jsp").forward(request, response); sqlList = "select * from `t_notice` where 1=1 " + condition + " order by id asc " + limit + ";";ps = c.prepareStatement(sqlList);rs = ps.executeQuery();while (rs.next()) {Notice vo = new Notice();vo.setId(rs.getLong("id"));vo.setNoticeName(rs.getString("notice_name"));vo.setNoticeText(rs.getString("notice_text"));vo.setNoticeType(rs.getString("notice_type"));vo.setCreateDate(rs.getString("create_date"));list.add(vo);}String sqlCount = "select count(*) from `t_notice` where 1=1 " + condition;ps = c.prepareStatement(sqlCount);rs = ps.executeQuery();if (rs.next()) {totalCount = rs.getInt(1);}rs.close();ps.close(); User loginUser = (User) request.getSession().getAttribute("loginUser");String oldPassword = Util.decode(request, "oldPassword");if (!loginUser.getPassword().equals(oldPassword)) {msg = "原密码错误!";} else {String newPassword = Util.decode(request, "newPassword");loginUser.setPassword(newPassword);UserService userService = new UserServiceImpl();userService.update(loginUser);msg = "修改成功!";}request.getSession().setAttribute("alert_msg", msg);request.getRequestDispatcher("reset_password.jsp").forward(request, response);} else {response.sendRedirect("login.jsp");}}/*** 处理Get请求** @param request UserService userService = new UserServiceImpl();userService.update(loginUser);msg = "修改成功!";}request.getSession().setAttribute("alert_msg", msg);request.getRequestDispatcher("reset_password.jsp").forward(request, response);} else {response.sendRedirect("login.jsp");}}/*** 处理Get请求** @param request* @param response* @throws ServletException 用户添加
ResultSet rs;String limit = (params.get("startIndex") != null && params.get("pageSize") != null) ? " limit " + params.get("startIndex") + "," + params.get("pageSize") : "";sqlList = "select * from `t_notice` where 1=1 " + condition + " order by id asc " + limit + ";";ps = c.prepareStatement(sqlList);rs = ps.executeQuery();while (rs.next()) {Notice vo = new Notice();vo.setId(rs.getLong("id"));vo.setNoticeName(rs.getString("notice_name"));vo.setNoticeText(rs.getString("notice_text"));vo.setNoticeType(rs.getString("notice_type"));vo.setCreateDate(rs.getString("create_date"));list.add(vo);}String sqlCount = "select count(*) from `t_notice` where 1=1 " + condition;
   男       女       保密    

   女    
if (!loginUser.getPassword().equals(oldPassword)) {msg = "原密码错误!";} else {String newPassword = Util.decode(request, "newPassword");loginUser.setPassword(newPassword);UserService userService = new UserServiceImpl();userService.update(loginUser);msg = "修改成功!";}request.getSession().setAttribute("alert_msg", msg);request.getRequestDispatcher("reset_password.jsp").forward(request, response);} else {response.sendRedirect("login.jsp");}}/*** 处理Get请求** @param request* @param response* @throws ServletException* @throws IOException*/ return null;}try {if (isMessyCode(str)) {str = new String(str.getBytes("ISO-8859-1"), "UTF-8");}if (isMessyCode(str)) {str = new String(str.getBytes("GB2312"), "UTF-8");}if (isMessyCode(str)) {str = new String(str.getBytes("GBK"), "UTF-8");}if (isMessyCode(str)) {str = new String(str.getBytes("UTF-8"), "ISO-8859-1");}if (isMessyCode(str)) {str = new String(str.getBytes("GB2312"), "ISO-8859-1");}if (isMessyCode(str)) { //取出表要删除的读者记录的主键long id = Long.parseLong(Util.decode(request, "id"));ReaderService readerService = new ReaderServiceImpl();//调用Service层删除方法(delete) , 将对应的记录删除readerService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改//取出页面传进来的各个数据 , 并设置到Reader对象的属性里Reader vo = new Reader();vo.setId(Long.valueOf(Util.decode(request, "id")));vo.setReaderName(Util.decode(request, "readerName"));vo.setReaderNumber(Util.decode(request, "readerNumber"));vo.setReaderSex(Util.decode(request, "readerSex"));vo.setReaderAddress(Util.decode(request, "readerAddress"));vo.setReaderPhone(Util.decode(request, "readerPhone"));vo.setReaderBook(Util.decode(request, "readerBook"));vo.setReaderText(Util.decode(request, "readerText")); /*** 根据参数 , 查询出条例条件的记录集合 , 最后将数据返回给调用处或者将数据集合设置到session域里 , 再跳转到对应的列表页面** @param request* @param response*/private void redirectList(HttpServletRequest request, HttpServletResponse response) throws IOException {//查询列和关键字String searchColumn = Util.decode(request, "searchColumn"); vo.setPassword(Util.decode(request, "password"));vo.setRealName(Util.decode(request, "realName"));vo.setUserSex(Util.decode(request, "userSex"));vo.setUserPhone(Util.decode(request, "userPhone"));vo.setUserText(Util.decode(request, "userText"));vo.setUserType(Util.decode(request, "userType"));UserService userService = new UserServiceImpl();//调用Service层增加方法(add) , 增加记录userService.add(vo);this.redirectList(request, response);} else if ("delete".equals(action)) {//删除//取出表要删除的用户记录的主键long id = Long.parseLong(Util.decode(request, "id"));UserService userService = new UserServiceImpl();//调用Service层删除方法(delete) , 将对应的记录删除userService.delete(id);this.redirectList(request, response);} else if ("edit".equals(action)) {//修改 vo.setReaderAddress(rs.getString("reader_address"));vo.setReaderPhone(rs.getString("reader_phone"));vo.setReaderBook(rs.getString("reader_book"));vo.setReaderText(rs.getString("reader_text"));list.add(vo);}String sqlCount = "select count(*) from `t_reader` where 1=1 " + condition;ps = c.prepareStatement(sqlCount);rs = ps.executeQuery();if (rs.next()) {totalCount = rs.getInt(1);}rs.close();ps.close();c.close();} catch (Exception e) {e.printStackTrace();} Connection c = Util.getConnection();PreparedStatement ps = c.prepareStatement(sql);ps.setString(1, vo.getUsername());ps.setString(2, vo.getPassword());ps.setString(3, vo.getRealName());ps.setString(4, vo.getUserSex());ps.setString(5, vo.getUserPhone());ps.setString(6, vo.getUserText());ps.setString(7, vo.getUserType());ps.setLong(8, vo.getId());ps.execute();ps.close();c.close(); ** @param request* @param response*/private void redirectList(HttpServletRequest request, HttpServletResponse response) throws IOException {//查询列和关键字String searchColumn = Util.decode(request, "searchColumn");String keyword = Util.decode(request, "keyword");Map params = new HashMap();//用来保存控制层传进来的参数(查询条件)params.put("searchColumn", searchColumn);//要查询的列params.put("keyword", keyword);//查询的关键字UserService userService = new UserServiceImpl();Map map = userService.list(params);request.getSession().setAttribute("list", map.get("list"));Integer totalRecord = (Integer) map.get("totalCount");//根据查询条件取出对应的总记录数 , 用于分页String pageNum = Util.decode(request, "pageNum");//封装分页参数com.demo.util.PageBean pb = new com.demo.util.PageBean(Integer.valueOf(pageNum != null ? pageNum : "1"), totalRecord);params.put("startIndex", pb.getStartIndex());params.put("pageSize", pb.getPageSize());List list = (List) userService.list(params).get("list");//根据分页参数startIndex、pageSize查询出来的最终结果listpb.setServlet("UserServlet");pb.setSearchColumn(searchColumn); c.close();return true;} catch (Exception e) {e.printStackTrace();return false;}}//@Overridepublic Reader get(Serializable id) {Reader vo = null;try {Connection c = Util.getConnection();Statement s = c.createStatement();String sql = "select * from `t_reader` where id = " + id;ResultSet rs = s.executeQuery(sql);if (rs.next()) {vo = new Reader();vo.setId(rs.getLong("id"));vo.setReaderName(rs.getString("reader_name"));vo.setReaderNumber(rs.getString("reader_number"));vo.setReaderSex(rs.getString("reader_sex"));vo.setReaderAddress(rs.getString("reader_address")); String sqlList;if (params.get("searchColumn") != null && !"".equals(params.get("searchColumn"))) {condition += " and `" + params.get("searchColumn") + "` like '%" + params.get("keyword") + "%'";}try {Connection c = Util.getConnection();PreparedStatement ps;ResultSet rs;String limit = (params.get("startIndex") != null && params.get("pageSize") != null) ? " limit " + params.get("startIndex") + "," + params.get("pageSize") : "";sqlList = "select * from `t_user` where 1=1 " + condition + " order by id asc " + limit + ";";ps = c.prepareStatement(sqlList);rs = ps.executeQuery(); //@Overridepublic Book get(Serializable id) {Book vo = null;try {Connection c = Util.getConnection();Statement s = c.createStatement();String sql = "select * from `t_book` where id = " + id;ResultSet rs = s.executeQuery(sql);if (rs.next()) {vo = new Book();vo.setId(rs.getLong("id"));vo.setBookName(rs.getString("book_name"));vo.setBookAuthor(rs.getString("book_author"));vo.setBookPublisher(rs.getString("book_publisher"));vo.setBookIsbn(rs.getString("book_isbn"));vo.setBookPrice(rs.getString("book_price"));vo.setBookText(rs.getString("book_text"));}c.close();} catch (Exception e) {e.printStackTrace();}return vo;} request.getSession().setAttribute("pageBean", pb);request.getSession().setAttribute("list", pb.getList());response.sendRedirect("reader_list.jsp");}}package com.demo.servlet;import com.demo.util.Util;import com.demo.service.UserService;import com.demo.service.impl.UserServiceImpl; * @throws ServletException* @throws IOException*/@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);//Get请求和Post请求的处理是一样的 , 所以把request、response转交给Post方法就好}/*** 根据参数 , 查询出条例条件的记录集合 , 最后将数据返回给调用处或者将数据集合设置到session域里 , 再跳转到对应的列表页面** @param request
}}package com.demo.servlet;import com.demo.util.Util;import com.demo.service.ReaderService;import com.demo.service.impl.ReaderServiceImpl;import com.demo.vo.Reader;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.Serializable;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 读者模块的Servlet控制层 , 负责接收页面传过来的请求参数 , 根据action参数的值来确定页面要执行的具体操作
* 而后再调用ReaderService业务层的方法来处理具体的业务 , 最后将处理完成的结果返回或跳转至相应页面