返回顶部
首页 > 资讯 > 后端开发 > JAVA >基于Java Web的图书管理系统
  • 246
分享到

基于Java Web的图书管理系统

java前端servlettomcatmvc 2023-09-02 12:09:38 246人浏览 薄情痞子
摘要

目录 1.系统简要概述 2.系统主要用到的数据库表 3.主要功能 管理员: 用户:  3.1管理员功能 3.11登录 3.12添加学生 3.13查看学生  3.14删除学生 3.15添加书籍  3.16查看书籍 3.2用户端功能 3.2.

目录

1.系统简要概述

2.系统主要用到的数据库表

3.主要功能

管理员:

用户:

 3.1管理员功能

3.11登录

3.12添加学生

3.13查看学生

 3.14删除学生

3.15添加书籍

 3.16查看书籍

3.2用户端功能

3.2.1登录

3.2.2注册 

3.2.3查询图书

3.2.4借阅书籍

3.2.5借阅信息查询

3.2.6还书

3.2.7我的基本信息

 4.代码部分

4.1 dao类

adminDao

 BookDao

 BorrowDao

 studentDao

 4.2 Servlet类

userlojinServlet

adminlojinServlet

managebookservlet

managestudentservlet

 4.3javaBean类

admin

student

book

4.4filter(过滤器类)

loginfilter

characterfilter


1.系统简要概述

所用的思想是在mvc模式下进行开发,主要涉及到的内容有:jsP、javaBean、Servlet、JDBC、以及前端CSS、js,从具体实施来看主要涉及到的知识有:对jsp主要内置对象的熟练使用。例如,request请求、response响应、session会话、以及利用cookie来进行免登录,EL表达式,JSTL标签,Filter过滤器,Listener监视器,前端的灵活使用等。

2.系统主要用到的数据库

admins(管理员) 管理员相关信息

Books(图书) 记录图书相关信息

Students(学生)表 记录学生相关信息

Borrows(借书) 记录借阅相关信息

3.主要功能

此次系统分为两个板块,管理员和用户。管理员主要进行用户和图书的增删改查,用户则进行借还操作。

下面简述两者主要功能及实现方法,具体可见后文详解。

管理员

增加学生、删除学生、查看学生、添加图书、修改图书、删除图书、查看图书

对学生的增删查,主要是在ManageStudent.Servlet里面进行。另外有专门处理学生的数据库类Student.Dao,首先增加和查看功能,直接利用前端提交的post请求,通过method字段在servlet里执行相对应的方法,将结果最终呈现在jsp页面中。至于删除的功能则是利用前端提交的get请求,将学生信息绑定在服务器前台,在后端通过request获取到相应数据,执行删除的方法。

对图书的增删改查类似以上机制,主要是在ManageBook.Servlet里面进行。同理也有Book.Dao,增删基本同添加学生一致。查看这里涉及到分页查看的机制,分页查看利用limit限制条件,对每次浏览的记录分条处理。通过后端每次传输的页值,将结果存储到session会话中,在jsp页面里,通过获取存储的对象输出到浏览器中。至于修改同查看一样,只不过这里,要将原先数据存到文本框内,需要通过get请求,将绑定的数据存储到会话中,然后重定向要修改的页面,中间借用EL表达式比较简洁。

用户:

查看图书、借书、借阅信息查看、还书、查看个人信息

当用户登录成功后,在左边功能框可查看所有图书信息,也可以查看具体类别的图书,这里主要是在userchoise.Servlet里面执行,当用户点击具体某类图书时,会将图书类别传输到服务器端,在servlet里面通过request获取类别,然后调用Book.Dao里面的方法将结果进行封装,在show.jsp页面里通过获取图书对象进行显示。每条图书信息后面附有借书操作功能,主要在Borrow.servlet里面进行,通过get机制将用户信息和图书信息上传到服务器,在servlet里面获取,然后利用Bean来声名对象,对借阅书籍进行更改,同时通过调用borrow.Dao,对图书信息数量进一步修改。

借阅信息的查看可直接在相应jsp里面,根据用户信息调用相应的Dao方法,来获取借阅书籍信息显示当浏览器上。在借阅信息里面可对图书进行归还操作,主要使用return.Servlet,在前端通过get机制,将学生信息和书籍信息上传到服务器端。在后端通过request获取,然后借用borrow.Dao,里面的方法对书籍数量进一步修改。查看个人信息比较见到,直接通过session会话,将事先绑定好的用户信息,直接读取,显示在相应页面中。

 3.1管理员功能

管理员主要管理学生和图书,在其项目里面有managestudent.servlet和managebook.servlet两个主要的servlet类。通过前端提供不同的请求来响应对应servlet里面的方法。

3.11登录

首先是管理员需要登录验证,判断数据库中是否有管理员账号相关信息。此次开发中,管理员账号为事先在数据库中录入,不支持注册和记住密码。管理员登录,需要请求adminlogin.servlet处理登录信息,如下(账号:admin 密码:admin):

图1- 1 管理员登录页面

若输入错误密码,则会提示密码错误重新登录(账号:admin 密码:123456):

图1- 2 管理员登录错误页面

3.12添加学生

添加学生功能,主要涉及到 student.dao(主要对学生进行数据库操纵,jdbc代码),student.bean(封装保存学生的基本信息),managestudent.servlet(用来后端操作控制添加学生信息的功能)以及addstusent.jsp(添加学生信息的前端页面)。添加信息的时候注意每项信息不能为空、以及添加的学生信息原数据库中是否有信息等需要在servlet里面做出判断。核心就是student.dao里面的连接数据库操纵语言,以及managestudent.servlet里面的对信息进行控制封装。如下:

图1-3 addstudent.jsp

3.13查看学生

查看学生功能是将数据库中的所有学生信息,展现在前端页面。这里主要涉及到studentDao、managestudent.servlet、student.javabean、showstudent.jsp等,在这里另外增加了一个分页查看的功能,主要思想就是在数据库里查询的时候将其分割,limit(beginpage,pagesize),然后通过查询的所有记录count/pagesize,得出总共的页数,然后在pageservlet里面,整理,最后输出到前端页面。

 3.14删除学生

管理员可以删除选中的学生,主要是利用前端绑定的机制,在get模式下,绑定用户的信息,通过前端传入的值,在后端进行相应的处理,在数据库中进行删除学生。所涉及到的类和前面几乎一致,不再重述。

3.15添加书籍

添加书籍类似添加学生,book.javabean(存有图书信息),managebook.Servlet(图书管理的servlet),以及对应的jsp页面.

 3.16查看书籍

管理员可查看所有图书信息。

 在show_book.jsp里面同时包含修改和删除图书的功能。两个方法对应不同的链接,跳转到相应的servlet中,在处理更改的时候需要用到重定向方法,将原先存到session中的数据,重定向到一个页面进行修改,同时该页面,要保留原有的信息,可以使用EL表达式来进行处理。

3.2用户端功能

3.2.1登录

用户登录页面同管理员登录页面一致,且在同一个jsp里,分两个fORM表单完成。在用户登录界面增加了注册、和记住密码的功能。首先看登录功能,用户输入账号和密码,前端将数据提交到后端的userloginServlet来进行处理,通过后端的处理与数据库中的结果作比较。验证登录是否成功,下图为登录成功界面。

在用户进行登录的时候有一个复选框,为记住密码的操作。当用户点击记住密码的时候,下次登录不用在输入账号密码,直接点击登录即可。这是利用cookie的机制,通过创建cookie,将账号信息保存到硬盘中。此次系统设计的cookie时间为三天。具体效果如下:

 

 

3.2.2注册 

注册功能同管理员添加学生一致,只不过这个注册会跳转到userloginsrvlet里面进行处理。结合数据库往里边添加数据,同时也会对,信息是否填写完整,以及原有数据库里面是否有数据做出判断。

3.2.3查询图书

 等用户登录成功后,即可看到左面功能栏里面的功能,最上面的就是查看所有图书功能,接下来的一系列则是根据图书类别进行查看图书,方便用户浏览,快速查找结果。里面的一些显示功能主要是,利用超链接的target,来将查询的结果输出到,showBook.jsp页面上。

3.2.4借阅书籍

每个书籍后面附有借书操作的功能,借阅实现的方法主要是,利用前端绑定机制,将用户的信息,和图书信息整合到一块,后端来进行获取。

当borrowservlet,接收到用户信息和图书信息后,通过studentBean,bookBean以及borrowBean,来对借阅功能进行封装处理,这时需要borrowdao来进行数据库的读写操作。

在这里设置每位用户最大借阅量为10本,所以在servlet里面,做出判断借阅量是否大于最大借阅书籍量。来响应用户是否还能继续借阅。若能借阅的话,则通过后台,处理Bean数据,用户借阅量发生变化,图书量也发生变化。

 3.2.5借阅信息查询

借阅信息查询这个页面中,可以显示所有借的图书信息,并且在这个页面附有还书的功能,借阅信息主要是利用BorrowServlet和BorrowDAO里面根据用户信息,来获取当前用户下共计的借阅量。

3.2.6还书

 还书对应的则是returnservlet,根据用户信息,以及图书信息,来做出合理的判断,在通过BorrowDao,里面的数据库操作对借书量,图书量数据上做出相应的改变。

3.2.7我的基本信息

在我的基本信息里面可以查看除密码以外的所有信息,包括当前借阅量,可借图书量等。具体实施为通过后台数据库将个人信息展现到页面上。

 4.代码部分

4.1 dao类

adminDao

package com.demo.dao;import com.demo.javabean.*;import java.sql.SQLException;public class AdminDAO {DBAccess db ;public boolean valid(String username, String passWord) {boolean isValid = false;db=new DBAccess();if(db.createConn()) {try {String sql="select * from admins where admin=? and password=?";db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1, username);db.pre.setString(2, password);db.setRs(db.pre.executeQuery());if(db.getRs().next()){isValid=true;}}catch (Exception e) {// TODO: handle exception}finally {db.closeRs();try {db.pre.close();} catch (SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}db.closeConn();}}return isValid ;}public boolean isExist(String username) {boolean isExist = false;db = new DBAccess();if(db.createConn()) {try {String sql="select * from admins where admin=?";db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1,username );db.setRs(db.pre.executeQuery());if(db.getRs().next()){isExist=true;}} catch (Exception e) {// TODO: handle exception}finally {db.closeRs();if(db.pre!=null){try {db.pre.close();} catch (Exception e2) {// TODO: handle exception}}db.closeConn();}}return isExist;}}

 BookDao

package com.demo.dao;import com.demo.javabean.*;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;public class BookDAO  {DBAccess db;private Books book;public ArrayList getAllBooks() throws Exception{db=new DBAccess();//db.setSql("SELECT * FROM books");ArrayList books = new ArrayList();if(db.createConn()){//db.query(sql);String sql= "SELECT * FROM books";db.query(sql);while(db.getRs().next()){book = this.assemble(db.getRs());books.add(book);}}db.closeRs();db.closeStm();db.closeConn();return books;}public ArrayList getBooksByCateGory(String category) throws Exception{//在这里进行分页判断ArrayList books = new ArrayList();DBAccess db=new DBAccess();java.sql.PreparedStatement pre = null;if(db.createConn()){//db.query(sql);String sql = "select * from books where category = ? ";pre=db.getConn().prepareStatement(sql);pre.setString(1, category);//pre.setInt(2, (page-1)*Students.PAGE_SIZE);//pre.setInt(3, Students.PAGE_SIZE);db.setRs(pre.executeQuery());while(db.getRs().next()){book = this.assemble(db.getRs());books.add(book);}}db.closeRs();db.closeStm();pre.close();db.closeConn();int a=books.size();System.out.println(a);return books;}public void addBook(String name,String author,String intro,String amount,String category) throws Exception{// boolean flag = false;DBAccess db = new DBAccess();if(db.createConn()){String sql = "insert into books(name,author,intro,amount,category) values('"+name+"','"+author+"','"+intro+"','"+amount+"','"+category+"')";db.update(sql);db.closeStm();db.closeConn();}}public boolean delbook(String name)throws Exception{//删除书籍DBAccess db = new DBAccess();boolean flag=false;if(db.createConn()){//db.setSql("delete from books where name = ?");String sql="delete from books where name = ?";db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1, name);if(db.pre.executeUpdate()>0)flag=true;//String sql = "delete from books where name = '"+name+"'";//db.update(sql);//db.closeStm();//db.closeConn();}db.closeRs();db.closeStm();db.pre.close();db.closeConn();return flag;}public boolean isExist(String name) {boolean isExist = false;DBAccess db = new DBAccess();if(db.createConn()) {String sql = "select * from books where name='"+name+"'";db.query(sql);if(db.next()) {isExist = true;}db.closeRs();db.closeStm();db.closeConn();}return isExist;}public boolean updateBook(Books book) throws Exception{//借还更新 主要书籍数量boolean flag = false;DBAccess db=new DBAccess();String sql = "UPDATE books SET amount=? WHERE id=?";java.sql.PreparedStatement pre=null;if(db.createConn()){pre=db.getConn().prepareStatement(sql);//conn = OpenConnection.getConnection();// ps = conn.prepareStatement(sql_str);pre.setInt(1,book.getAmount());pre.setInt(2,book.getId());if(pre.executeUpdate() > 0) flag = true;}db.closeRs();db.closeStm();pre.close();db.closeConn();// this.release();// OpenConnection.closeConnection(conn);return flag;}public boolean updateBook2(Books book) throws Exception{//修改更新 修改图书信息boolean flag = false;DBAccess db=new DBAccess();//db.setSql("UPDATE books SET name=?,author=?,amount=?,category=? where id=?");if(db.createConn()){String sql="UPDATE books SET name=?,author=?,amount=?,category=? where id=?";db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1, book.getName());db.pre.setString(2, book.getAuthor());db.pre.setInt(3, book.getAmount());db.pre.setString(4, book.getCategory());db.pre.setInt(5, book.getId());if(db.pre.executeUpdate() > 0) flag = true;}db.closeRs();db.closeStm();db.pre.close();db.closeConn();return flag;}public Books getBookById(int id) throws Exception{DBAccess db=new DBAccess();String sql = "SELECT * FROM books WHERE id = ?";java.sql.PreparedStatement pre=null;if(db.createConn()){pre=db.getConn().prepareStatement(sql);// conn = OpenConnection.getConnection();// ps = conn.prepareStatement(sql_str);pre.setInt(1,id);db.setRs(pre.executeQuery());if (db.getRs().next()) book = this.assemble(db.getRs());}db.closeRs();db.closeStm();pre.close();db.closeConn();//this.release();// OpenConnection.closeConnection(conn);return book;}public Books assemble(ResultSet rs) throws Exception{book = new Books();book.setId(rs.getInt("id"));book.setName(rs.getString("name"));book.setAuthor(rs.getString("author"));book.setIntro(rs.getString("intro"));book.setAmount(rs.getInt("amount"));book.setCategory(rs.getString("category"));return book;}public ArrayList findAll(Integer page){//分页查询信息DBAccess  db=new DBAccess();ArrayList list=new ArrayList();try {if(db.createConn()){String sql="select  * from books limit ?,? ";db.pre=db.getConn().prepareStatement(sql);db.pre.setInt(1, (page-1)*Students.PAGE_SIZE);db.pre.setInt(2, Students.PAGE_SIZE);db.setRs(db.pre.executeQuery());while(db.getRs().next()){Books book=new Books();book.setId(db.getRs().getInt("id"));book.setName(db.getRs().getString("name"));book.setAuthor(db.getRs().getString("author"));book.setCategory(db.getRs().getString("category"));book.setAmount(db.getRs().getInt("amount"));list.add(book);}db.closeRs();db.pre.close();db.closeConn();}} catch( SQLException e) {e.printStackTrace();}return list;}public ArrayList getBooksByCategory(String category,Integer page) throws Exception{//在这里进行分页判断(学生端)ArrayList books = new ArrayList();DBAccess db=new DBAccess();java.sql.PreparedStatement pre = null;if(db.createConn()){//db.query(sql);String sql = "select * from books where category = ? limit ?,?";pre=db.getConn().prepareStatement(sql);pre.setString(1, category);pre.setInt(2, (page-1)*Students.PAGE_SIZE);pre.setInt(3, Students.PAGE_SIZE);db.setRs(pre.executeQuery());while(db.getRs().next()){book = this.assemble(db.getRs());books.add(book);}}db.closeRs();db.closeStm();pre.close();db.closeConn();int a=books.size();System.out.println(a);return books;}public int countPage(String singal){//查询记录总数DBAccess  db=new DBAccess();int count=0;try {if(db.createConn()){String sql;if(!"1".equals(singal)){sql="select count(*) from books where category=?";db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1, singal);db.setRs(db.pre.executeQuery());}else {sql="select count(*) from books";db.pre=db.getConn().prepareStatement(sql);db.setRs(db.pre.executeQuery());}if(db.getRs().next()){count=db.getRs().getInt(1);}}} catch( SQLException e) {e.printStackTrace();}finally {db.closeRs();try {if(db.pre!=null){db.pre.close();}} catch (Exception e2) {// TODO: handle exception}db.closeConn();}return count;}}

 BorrowDao

package com.demo.dao;import com.demo.javabean.*;import java.sql.ResultSet;import java.util.ArrayList;import com.demo.javabean.DBAccess;public class BorrowDAO  {    private Borrows borrow = null;    public ArrayList getAllBorrows() throws Exception{    DBAccess db=new DBAccess();    java.sql.PreparedStatement pre=null;       String sql = "SELECT * FROM borrows";        ArrayList borrows = new ArrayList();        //conn = OpenConnection.getConnection();       // ps = conn.prepareStatement(sql_str);        //rs = ps.executeQuery();if(db.createConn()){pre=db.getConn().prepareStatement(sql);db.setRs(pre.executeQuery());//db.query(sql);        while(db.getRs().next()) {            borrow = this.assemble(db.getRs());            borrows.add(borrow);        }}        //this.release();db.closeRs();db.closeStm();db.closeConn();       // OpenConnection.closeConnection(conn);        return borrows;    }    public ArrayList getBorrowsBySId(int s_id) throws Exception{        ArrayList borrows = new ArrayList();        DBAccess db=new DBAccess();        java.sql.PreparedStatement pre=null;       String sql = "SELECT * FROM borrows WHERE s_id = ?";       if(db.createConn()){       pre=db.getConn().prepareStatement(sql);       pre.setInt(1, s_id);       db.setRs(pre.executeQuery());        while (db.getRs().next()){            borrow = this.assemble(db.getRs());            borrows.add(borrow);        }       }       db.closeRs();       db.closeStm();       pre.close();       db.closeConn();        return borrows;    }    public boolean addBorrows(Borrows borrow) throws Exception{        boolean flag = false;        DBAccess db=new DBAccess();        java.sql.PreparedStatement pre=null;        String sql = "INSERT INTO borrows VALUES(?,?,?)";        if(db.createConn()){        pre=db.getConn().prepareStatement(sql);               // conn = OpenConnection.getConnection();       // ps = conn.prepareStatement(sql_str);        pre.setInt(1,borrow.getS_id());        pre.setInt(2,borrow.getB_id());        pre.setInt(3,borrow.getAmount());        if(pre.executeUpdate() > 0)  flag = true;        }        //this.release();        db.closeRs();        pre.close();        db.closeConn();        //OpenConnection.closeConnection(conn);        return flag;    }    public boolean deleteBorrow(Borrows borrow) throws Exception{        boolean flag = false;        DBAccess db=new DBAccess();        java.sql.PreparedStatement pre=null;        String sql = "DELETE FROM borrows WHERE s_id = ? AND b_id = ? AND amount = ?";        if(db.createConn()){        pre=db.getConn().prepareStatement(sql);                        //conn = OpenConnection.getConnection();        //ps =conn.prepareStatement(sql_str);        pre.setInt(1,borrow.getS_id());        pre.setInt(2,borrow.getB_id());        pre.setInt(3,borrow.getAmount());        if(pre.executeUpdate() > 0) flag = true;        }        return flag;    }    public Borrows getBorrowById(int s_id, int b_id) throws Exception{    DBAccess db=new DBAccess();        String sql = "SELECT * FROM borrows WHERE s_id = ? AND b_id = ?";        java.sql.PreparedStatement pre=null;        if(db.createConn()){        pre=db.getConn().prepareStatement(sql);                //conn = OpenConnection.getConnection();        //ps = conn.prepareStatement(sql_str);        pre.setInt(1,s_id);        pre.setInt(2,b_id);        //rs = ps.executeQuery();        db.setRs(pre.executeQuery());        if(db.getRs().next()) borrow = this.assemble(db.getRs());        }        db.closeRs();        db.closeStm();        pre.close();        db.closeConn();       // this.release();       // OpenConnection.closeConnection(conn);        return borrow;    }   public boolean updateBorrow(Borrows borrow) throws  Exception{        boolean flag = false;        DBAccess db=new DBAccess();        String sql = "UPDATE borrows SET amount = ? WHERE s_id = ? AND b_id = ?";        java.sql.PreparedStatement pre=null;        if(db.createConn()){        pre=db.getConn().prepareStatement(sql);                //conn = OpenConnection.getConnection();       // ps = conn.prepareStatement(sql_str);        pre.setInt(1,borrow.getAmount());        pre.setInt(2,borrow.getS_id());        pre.setInt(3,borrow.getB_id());        if(pre.executeUpdate() > 0) flag = true;        }        db.closeRs();        db.closeStm();        pre.close();        db.closeConn();        //this.release();        //OpenConnection.closeConnection(conn);        return flag;    }    public Borrows assemble(ResultSet rs) throws Exception{        borrow = new Borrows();        borrow.setS_id(rs.getInt("s_id"));        borrow.setB_id(rs.getInt("b_id"));        borrow.setAmount(rs.getInt("amount"));        return borrow;    }}

 studentDao

package com.demo.dao;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import com.demo.javabean.*;public class StudentDAO {DBAccess db;public boolean valid(String username, String password) {boolean isValid = false;//DBAccess db = new DBAccess();db = new DBAccess();if(db.createConn()) {//String sql = "select * from students where user='"+username+"' and password='"+password+"'";//db.setSql("select * from students where user='"+username+"' and password='"+password+"'");String sql="select * from students where user= ? and password= ?";try {//这里引用prepareStatement是为了防止SQL注入db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1, username);db.pre.setString(2, password);db.setRs(db.pre.executeQuery());if(db.getRs().next()){isValid=true;}} catch (SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}finally {db.closeRs();if(db.pre!=null)try {db.pre.close();} catch (SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}db.closeConn();}//db.query(sql);//db.query(db.getSql());//if(db.next()) {//isValid = true;//}//db.closeRs();//db.closeStm();//db.closeConn();}return isValid ;}public boolean isExist(String username) {boolean isExist = false;db = new DBAccess();if(db.createConn()) {//String sql = "select * from students where user='"+username+"'";//db.setSql("select * from students where user='"+username+"'");String sql="select * from students where user=?";try {db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1, username);db.setRs(db.pre.executeQuery());if(db.getRs().next()){isExist=true;}} catch (SQLException e) {// TODO 自动生成的 catch 块e.printStackTrace();}finally {db.closeRs();if(db.pre!=null){try {db.pre.close();} catch (Exception e2) {// TODO: handle exception}db.closeConn();}}//db.query(sql);//db.query(db.getSql());//if(db.next()) {//isExist = true;//}//db.closeRs();//db.closeStm();//db.closeConn();}return isExist;}public boolean add(Students student) throws Exception{//添加boolean flag = false;db=new DBAccess();String sql = "INSERT INTO students(user,password,department,grade,classes,email,amount) VALUES(?,?,?,?,?,?,?)";if(db.createConn()){db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1,student.getUser());db. pre.setString(2,student.getPassword());db.pre.setString(3,student.getDepartment());db.pre.setString(4,student.getGrade());db. pre.setString(5,student.getClasses());db.pre.setString(6,student.getEmail());db.pre.setInt(7,student.getAmount());if(db.pre.executeUpdate() > 0) flag = true;}db.closeRs();db.closeStm();db.pre.close();db.closeConn();return flag;}public void del(String usename){//删除DBAccess db = new DBAccess();if(db.createConn()) {String sql = "delete from students where user = '"+usename+"'";db.update(sql);db.closeStm();db.closeConn();}}private Students student = null;public ArrayListgetAllStudents() throws Exception{DBAccess db = new DBAccess();ArrayList students = new ArrayList();String sql = "SELECT * FROM students";if(db.createConn()){db.query(sql);while(db.getRs().next()){student = this.assemble(db.getRs());students.add(student);}db.closeStm();db.closeRs();db.closeConn();}return students;}public Students assemble(ResultSet rs) throws Exception{student = new Students();student.setId(rs.getInt("id"));student.setUser(rs.getString("user"));student.setPassword(rs.getString("password"));student.setDepartment(rs.getString("department"));student.setGrade(rs.getString("grade"));student.setClasses(rs.getString("classes"));student.setEmail(rs.getString("email"));student.setAmount(rs.getInt("amount"));return student;}public boolean delStudentByName(String user) throws Exception{//删除DBAccess db=new DBAccess();boolean flag = false;String sql="DELETE FROM students WHERE user = ?";if(db.createConn()){db.pre=db.getConn().prepareStatement(sql);db.pre.setString(1, user);if(db.pre.executeUpdate()>0)flag=true;}db.closeConn();db.closeStm();db.pre.close();db.closeRs();return flag;}public Students getStudentById(int id) throws Exception{DBAccess db=new DBAccess();String sql = "SELECT * FROM students WHERE id = ?";java.sql.PreparedStatement pre=null;if(db.createConn()){pre=db.getConn().prepareStatement(sql);pre.setInt(1, id);db.setRs(pre.executeQuery());//conn = OpenConnection.getConnection();//ps = conn.prepareStatement(sql_str);//ps.setInt(1,id);// rs = ps.executeQuery();if (db.getRs().next()) student = this.assemble(db.getRs());}db.closeRs();db.closeStm();pre.close();db.closeConn();//this.release();//OpenConnection.closeConnection(conn);return student;}public boolean updateStudent(Students student) throws Exception{boolean flag = false;DBAccess db=new DBAccess();String sql = "update students set amount = ? where id = ?";java.sql.PreparedStatement pre=null;if(db.createConn()){pre=db.getConn().prepareStatement(sql);//conn = OpenConnection.getConnection();// ps = conn.prepareStatement(sql_str);pre.setInt(1,student.getAmount());pre.setInt(2,student.getId());if(pre.executeUpdate() > 0) flag = true;}//this.release();//OpenConnection.closeConnection(conn);db.closeRs();pre.close();db.closeStm();db.closeConn();return flag;}public Students getStudentByName(String name) throws Exception{DBAccess  db=new DBAccess();String sql = "SELECT * FROM students WHERE user = ?";java.sql.PreparedStatement pre=null;if(db.createConn()){pre=db.getConn().prepareStatement(sql);pre.setString(1, name);db.setRs(pre.executeQuery());// conn = OpenConnection.getConnection();//ps = conn.prepareStatement(sql_str);//ps.setString(1,name);// rs = ps.executeQuery();if(db.getRs().next()) student = this.assemble(db.getRs());}db.closeRs();db.closeStm();pre.close();db.closeConn();//this.release();// OpenConnection.closeConnection(conn);return student;}public ArrayList findAll(Integer page){//分页查询信息DBAccess  db=new DBAccess();ArrayList list=new ArrayList();try {if(db.createConn()){String sql="select  * from students limit ?,? ";db.pre=db.getConn().prepareStatement(sql);db.pre.setInt(1, (page-1)*Students.PAGE_SIZE);db.pre.setInt(2, Students.PAGE_SIZE);db.setRs(db.pre.executeQuery());while(db.getRs().next()){Students stu=new Students();stu.setUser(db.getRs().getString("user"));stu.setPassword(db.getRs().getString("password"));stu.setDepartment(db.getRs().getString("department"));stu.setGrade(db.getRs().getString("grade"));stu.setClasses(db.getRs().getString("classes"));stu.setEmail(db.getRs().getString("email"));stu.setAmount(db.getRs().getInt("amount"));list.add(stu);}db.closeRs();db.pre.close();db.closeConn();}} catch( SQLException e) {e.printStackTrace();}return list;}public int countPage(){//查询记录总数DBAccess  db=new DBAccess();int count=0;try {if(db.createConn()){String sql="select count(*) from students  ";db.pre=db.getConn().prepareStatement(sql);db.setRs(db.pre.executeQuery());if(db.getRs().next()){count=db.getRs().getInt(1);}}} catch( SQLException e) {e.printStackTrace();}finally {db.closeRs();try {if(db.pre!=null){db.pre.close();}} catch (Exception e2) {// TODO: handle exception}db.closeConn();}return count;}}

 4.2 Servlet类

userlojinServlet

package com.demo.servlet;import com.demo.dao.AdminDAO;import com.demo.dao.StudentDAO;import com.demo.javabean.*;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.annotation.WEBServlet;import javax.servlet.Http.*;import java.io.IOException;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.sql.SQLException;public class UserLoginServlet extends httpservlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String method = (String)request.getParameter("method");if(method==null) {PrintWriter out = response.getWriter();out.println("invalid request!");} else if(method.equals("login")) {try {Login(request, response);} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}else if(method.equals("reGISter")) {try {Register(request, response);} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}else if(method.equals("logout")){Logout(request,response);}}//用户登录protected void Login(HttpServletRequest request,HttpServletResponse response) throws Exception {//request.setCharacterEncoding("utf-8");//response.setCharacterEncoding("utf-8");//response.setContentType("text/html;charset=utf-8");    PrintWriter out = response.getWriter();String a_user = request.getParameter("user");String a_password = request.getParameter("password");System.out.println(a_user);String rem=request.getParameter("remember");HttpSession session = request.getSession();StudentDAO a_dao=new StudentDAO();if ("".equals(a_user) ||"".equals(a_password)) {//System.out.println("登录失败,账号或密码不能为空!");//response.sendRedirect("login.jsp");out.println("");return;}else if(a_dao.isExist(a_user)){Students student=a_dao.getStudentByName(a_user);session.setAttribute("student", student);if(a_dao.valid(a_user, a_password)){session.setAttribute("a_user", a_user);user user=new user();session.setAttribute("user",user);if("1".equals(rem)){//创建2个CookieCookie namecookie=new Cookie("username", a_user);//设置Cookie的有效期为三天namecookie.setMaxAge(60*60*24*3);Cookie pwdcookie=new Cookie("password", a_password);pwdcookie.setMaxAge(60*60*24*3);response.addCookie(namecookie);response.addCookie(pwdcookie);}//response.sendRedirect(request.getContextPath()+"/user.jsp");//System.out.println("登录成功!");out.println("");}else {//System.out.println("登录失败2,密码错误!");//response.sendRedirect(request.getContextPath()+"/login.jsp");out.println("");}}else {//System.out.println("登录失败3,用户名不存在!");//response.sendRedirect(request.getContextPath()+"/login.jsp");out.println("");}}//用户退出protected void Logout(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {HttpSession session = request.getSession();session.removeAttribute("a_user");session.removeAttribute("user");response.sendRedirect("login.jsp");}//用户注册protected void Register(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException{//request.setCharacterEncoding("utf-8");//response.setCharacterEncoding("utf-8");//response.setContentType("text/html;charset=utf-8");    PrintWriter out = response.getWriter();String user =  request.getParameter("user");String password = request.getParameter("password");String repwd= request.getParameter("repwd");String department =  request.getParameter("department");String grade =  request.getParameter("grade");String classes = request.getParameter("classes");String email =  request.getParameter("email");if ("".equals(user) ||"".equals(password) || "".equals(repwd) || !password.equals(repwd)||"".equals(department)||"".equals(grade)||"".equals(classes)||"".equals(email)) {//response.sendRedirect("reg.jsp");out.println("");return;}else{Students student = null;StudentDAO a_dao = new StudentDAO();boolean isExist =a_dao.isExist(user);if(isExist){//System.out.println("'此学号已注册过,请重试!");//response.sendRedirect("reg.jsp");out.println("");}else{student = new Students();student.setUser(user);student.setPassword(password);student.setDepartment(department);student.setGrade(grade);student.setClasses(classes);student.setEmail(email);student.setAmount(0);try {if(a_dao.add(student)){student = a_dao.getStudentByName(student.getUser());request.getSession().setAttribute("student",student);//System.out.println("注册成功,即将跳转到主界面!");//response.sendRedirect("login.jsp");out.println("");return;}} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//req.setCharacterEncoding("utf-8");this.doGet(req, resp);}}

adminlojinServlet

package com.demo.servlet;import java.io.*;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.demo. dao.AdminDAO;import com.demo.javabean.*;public class AdminLoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {    String method = (String)req.getParameter("method");    if(method==null) {PrintWriter out = resp.getWriter();out.println("invalid request!");} else if(method.equals("login")) {Login(req, resp);}    }    //管理员登录    protected void Login(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {    //request.setCharacterEncoding("utf-8");    //response.setCharacterEncoding("utf-8");//response.setContentType("text/html;charset=utf-8");    PrintWriter out = response.getWriter();        String a_user =request.getParameter("a_user");        String a_password = request.getParameter("a_password");        //HttpSession session = request.getSession();        AdminDAO a_dao = new AdminDAO();       //String admin = null;        if ( a_user .equals("") ||a_password .equals("")) {        //System.out.println("登录失败");//response.sendRedirect("login.jsp");//重定向        out.println("");return;}        boolean isValid =  a_dao.valid(a_user, a_password);if (isValid) {HttpSession session = request.getSession();session.setAttribute("a_user", a_user);out.println("");//response.sendRedirect("admin.jsp");//重定向return;}else {//System.out.println("登录失败");//response.sendRedirect("login.jsp");//重定向out.println("");return;}}//    protected void Logout(HttpServletRequest request,//HttpServletResponse response) throws ServletException, IOException {//HttpSession session = request.getSession();//session.removeAttribute("a_user");//response.sendRedirect("login.jsp");//}//            @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        doGet(req,resp);    }}

managebookservlet

package com.demo.servlet;import com.demo.dao.BookDAO;import com.demo.javabean.*;import javax.security.auth.message.callback.PrivateKeyCallback.Request;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;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.io.PrintWriter;import java.io.UnsupportedEncodingException;public class ManageBookServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//HttpSession session=request.getSession();//if(session!=null&&session.getAttribute("a_user1")!=null){//String action = (String)request.getParameter("action");//if(action==null) {//PrintWriter out = response.getWriter();//out.println("invalid request!");//} else if(action.equals("addbook")) {//AddBook(request, response);//}//else if(action.equals("delbook")) {//DelBook(request, response);//}//else if(action.equals("updatebook")) {//UpdateBook(request, response);//}//else if(action.equals("update")) {//Update(request, response);//}//}//else {//response.sendRedirect("login.jsp");//}String action = (String)request.getParameter("action");if(action==null) {PrintWriter out = response.getWriter();out.println("invalid request!");} else if(action.equals("addbook")) {AddBook(request, response);}else if(action.equals("delbook")) {DelBook(request, response);}else if(action.equals("updatebook")) {UpdateBook(request, response);}else if(action.equals("update")) {Update(request, response);}}//更新图书private void Update(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException{// TODO 自动生成的方法存根//req.setCharacterEncoding("utf-8");//resp.setCharacterEncoding("utf-8");//resp.setContentType("text/html;charset=utf-8");Integer sid = Integer.parseInt(req.getParameter("sid"));BookDAO b_dao=new BookDAO();String page="";try {Books book=b_dao.getBookById(sid);req.setAttribute("book", book);req.getRequestDispatcher("admin/update_book.jsp").forward(req, resp);} catch (Exception e) {//page="error.jsp";//TODO 自动生成的 catch 块e.printStackTrace();}//        finally{//        page="admin/update_book.jsp";//        }//        req.getRequestDispatcher(page).forward(req, resp);}private void UpdateBook(HttpServletRequest req, HttpServletResponse resp)throws ServletException,IOException {//修改图书信息// TODO 自动生成的方法存根//req.setCharacterEncoding("utf-8");//resp.setCharacterEncoding("utf-8");//resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();String sid=req.getParameter("sid");String name=req.getParameter("name");String author=req.getParameter("author");String amount = req.getParameter("amount");String category = req.getParameter("category");BookDAO b_dao=new BookDAO();Books book=new Books();if(name != "" && author != "" && amount != "" && category != ""){book.setName(name);book.setAuthor(author);book.setAmount(Integer.parseInt(amount));book.setCategory(category);book.setId(Integer.parseInt(sid));try {if(b_dao.updateBook2(book)){//System.out.println("修改书籍成功!");//resp.sendRedirect("PageServlet.do?method=showBook");out.println("");return;}else//System.out.println("修改书籍失败!内容不能为空");out.println("");} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}else//System.out.println("修改书籍失败!");//resp.sendRedirect("");out.println("");}//删除图书private void DelBook(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {// TODO 自动生成的方法存根//request.setCharacterEncoding("utf-8");//response.setCharacterEncoding("utf-8");//response.setContentType("text/html;charset=utf-8");PrintWriter out=response.getWriter();String name=request.getParameter("name");BookDAO b_dao = new BookDAO();if(name!=null){try {if(b_dao.delbook(name)){//System.out.println("删除书籍成功!");//response.sendRedirect("PageServlet.do?method=showBook");//return;out.println("");return;}else //System.out.println("删除书籍失败!");//response.sendRedirect("admin/del_book.jsp");out.println("");} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}else{//System.out.println("删除图书失败!无此图书");//response.sendRedirect("admin/del_book.jsp");out.println("");}}//添加图书private void AddBook(HttpServletRequest req, HttpServletResponse resp)throws ServletException,IOException {// TODO 自动生成的方法存根//req.setCharacterEncoding("utf-8");//resp.setCharacterEncoding("utf-8");//resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();String name = req.getParameter("name");String author = req.getParameter("author");String amount = req.getParameter("amount");String category = req.getParameter("category");String intro="暂未介绍";BookDAO b_dao = new BookDAO();Books book = null;if(name != "" && author != "" && amount != "" && category != ""){book = new Books();book.setName(name);book.setAuthor(author);book.setIntro("暂未介绍");book.setAmount(Integer.parseInt(amount));book.setCategory(category);//PrintWriter out = resp.getWriter();try {b_dao.addBook(name, author, intro, amount, category);//System.out.println("添加书籍成功!");//resp.sendRedirect("admin/reg_book.jsp");out.println("");} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}else{//System.out.println("添加书籍失败!其他原因");//resp.sendRedirect("admin/reg_book.jsp");out.println("");}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//req.setCharacterEncoding("utf-8");doGet(req,resp);}}

managestudentservlet

package com.demo.servlet;import com.demo.dao.StudentDAO;import com.demo.javabean.*;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;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.io.PrintWriter;public class ManageStudentServlet extends HttpServlet {private static final long serialVersionUID = 1L;    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//    HttpSession session=request.getSession();//    if(session!=null&&session.getAttribute("a_user1")!=null){//    String action = (String)request.getParameter("action");//    if(action==null) {//PrintWriter out = response.getWriter();//out.println("invalid request!");//} else if(action.equals("addstudent")) {//AddStudent(request, response);//}//else if(action.equals("delstudent")) {//DelStudent(request, response);//}//else if(action.equals("showstudent")){//ShowStudent(request,response);//}//    }//    else {//response.sendRedirect("login.jsp");//}    String action = (String)request.getParameter("action");    if(action==null) {PrintWriter out = response.getWriter();out.println("invalid request!");} else if(action.equals("addstudent")) {AddStudent(request, response);}else if(action.equals("delstudent")) {DelStudent(request, response);}else if(action.equals("showstudent")){ShowStudent(request,response);}    }        private void ShowStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{// TODO 自动生成的方法存根//request.setCharacterEncoding("utf-8");String user=request.getParameter("user");StudentDAO studao=new StudentDAO();Students student=new Students();try {student=studao.getStudentByName(user);request.setAttribute("student", student);} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}request.getRequestDispatcher("admin/show_student.jsp").forward(request, response);}private void DelStudent(HttpServletRequest req, HttpServletResponse resp)throws ServletException,IOException {        req.setCharacterEncoding("utf-8");        resp.setCharacterEncoding("utf-8");        resp.setContentType("text/html;charset=utf-8");        PrintWriter out=resp.getWriter();        String user=req.getParameter("user");        StudentDAO s_dao = new StudentDAO();        if(user!=null){         System.out.println(user);        try {if(s_dao.delStudentByName(user)){// System.out.println("删除成功!"); //resp.sendRedirect("PageServlet.do?method=showStudent");out.println(""); return;}else//System.out.println("删除失败!");//resp.sendRedirect("admin/del_student.jsp");out.println("");} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}        }             else{              //System.out.println("删除失败,无此账号!");              //resp.sendRedirect("admin/del_student.jsp");             out.println("");                }        }// TODO 自动生成的方法存根private void AddStudent(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {// TODO 自动生成的方法存根//req.setCharacterEncoding("utf-8");//resp.setCharacterEncoding("utf-8");//resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();        String user=req.getParameter("user");        String password = req.getParameter("password");        String relpwd=req.getParameter("relpwd");        String department=req.getParameter("department");        String grade = req.getParameter("grade");        String classes=req.getParameter("classes");        String email = req.getParameter("email");        String admin=req.getParameter("admin");        if ("".equals(user) || "".equals(password) ||"".equals(relpwd) || !password.equals(relpwd)||"".equals(department)||"".equals(grade)||"".equals(classes)||"".equals(email)) {//resp.sendRedirect("admin/add_student.jsp");//System.out.println("信息不全");        out.println("");return;}else{        StudentDAO a_dao = new StudentDAO();        Students student=new Students();boolean isExist =a_dao.isExist(user);if(isExist){//System.out.println("此学号已注册!");//resp.sendRedirect("admin/add_student.jsp");out.println("");}else{ student = new Students();            student.setUser(user);            student.setPassword(password);            student.setDepartment(department);            student.setGrade(grade);            student.setClasses(classes);;            student.setEmail(email);            student.setAmount(0);            try {if(a_dao.add(student)){student = a_dao.getStudentByName(student.getUser());    req.getSession().setAttribute("student",student);//System.out.println("添加成功!");//resp.sendRedirect("");    out.println("");return;}} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}}    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {    //req.setCharacterEncoding("utf-8");        doGet(req,resp);    }}

javaBean类

admin

package com.demo.javabean;public class Admins {    private int id;                     //定义管理员的id序号    private String admin;               //登录账号    private String password;            //密码    private String realname;            //真实姓名    private String phone;               //电话号码    private String email;               //邮箱    private String address;             //地址    //获取管理员的id序号    public int getId() {        return id;    }    //设置管理员的id序号    public void setId(int id) {        this.id = id;    }    //获取管理员的账号    public String getAdmin() {        return admin;    }    //设置管理员的账号    public void setAdmin(String admin) {        this.admin = admin;    }    //获取管理员的密码    public String getPassword() {        return password;    }    //设置管理员的密码    public void setPassword(String password) {        this.password = password;    }    //获取管理员的真实姓名    public String getRealname() {        return realname;    }    //设置管理员的真实姓名    public void setRealname(String realname) {        this.realname = realname;    }    //获取管理员的电话    public String getPhone() {        return phone;    }    //设置管理员的电话号码    public void setPhone(String phone) {        this.phone = phone;    }    //获得管理员的邮箱地址    public String getEmail() {        return email;    }    //设置管理员的邮箱地址    public void setEmail(String email) {        this.email = email;    }    //获取管理员的地址    public String getAddress() {        return address;    }    //设置管理员的地址    public void setAddress(String address) {        this.address = address;    }}

student

package com.demo.javabean;public class Students {public static final int PAGE_SIZE=5;    private int id;    private String user;    private String password;   private String department;    private String grade;    private String classes;    private String email;    private int amount;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUser() {        return user;    }    public void setUser(String user) {        this.user = user;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getDepartment() {        return department;    }    public void setDepartment(String department) {        this.department = department;    }    public String getGrade() {        return grade;    }    public void setGrade(String grade) {        this.grade = grade;    }    public String getClasses() {        return classes;    }    public void setClasses(String classes) {        this.classes = classes;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public int getAmount() {        return amount;    }    public void setAmount(int amount) {        this.amount = amount;    }}

book

package com.demo.javabean;public class Books {private static final long serialVersionUID = 1L;public static final int PAGE_SIZE=5;    private int id;    private String name;    private String author;    private String intro;    private int amount;    private String category;    //取得图书的id序号    public int getId() {        return id;    }    //设置图书的id序号    public void setId(int id) {        this.id = id;    }    //获取图书的名字    public String getName() {        return name;    }    //设置图书的名字    public void setName(String name) {        this.name = name;    }    //获取图书的作者    public String getAuthor() {        return author;    }    //设置图书的作者    public void setAuthor(String author) {        this.author = author;    }    //获取图书的简介    public String getIntro() {        return intro;    }    //设置图书的简介    public void setIntro(String intro) {        this.intro = intro;    }    //获取图书的数量    public int getAmount() {        return amount;    }    //设置图书的数量    public void setAmount(int amount) {        this.amount = amount;    }    //获取图书的类别    public String getCategory() {        return category;    }    //设置图书的类别    public void setCategory(String category) {        this.category = category;    }}

filter(过滤器类)

loginfilter

package com.demo.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginFilter implements Filter {//对登录进行验证过滤@Overridepublic void destroy() {// TODO 自动生成的方法存根}@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {// TODO 自动生成的方法存根HttpServletRequest request=(HttpServletRequest) req;HttpServletResponse response=(HttpServletResponse)resp;HttpSession session=request.getSession(false);if(session!=null&&session.getAttribute("a_user")!=null){//继续往下走chain.doFilter(request, response);}else {response.sendRedirect("login.jsp");}}@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO 自动生成的方法存根}}

characterfilter

package com.demo.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CharacterFilter implements Filter {//对字符乱码问题进行过滤@Overridepublic void destroy() {// TODO 自动生成的方法存根}@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {// TODO 自动生成的方法存根HttpServletRequest request=(HttpServletRequest)req;HttpServletResponse response=(HttpServletResponse) resp;request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//继续执行chain.doFilter(request, response);}@Overridepublic void init(FilterConfig arg0) throws ServletException {// TODO 自动生成的方法存根}}

。。。因代码量较多,就不一一粘贴,有兴趣的友友可以交流。

来源地址:https://blog.csdn.net/qq_52705208/article/details/125424807

--结束END--

本文标题: 基于Java Web的图书管理系统

本文链接: https://lsjlt.com/news/390777.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于Java Web的图书管理系统
    目录 1.系统简要概述 2.系统主要用到的数据库表 3.主要功能 管理员: 用户:  3.1管理员功能 3.11登录 3.12添加学生 3.13查看学生  3.14删除学生 3.15添加书籍  3.16查看书籍 3.2用户端功能 3.2....
    99+
    2023-09-02
    java 前端 servlet tomcat mvc
  • 基于PHP的图书管理系统
    摘要 网络技术给生活带来了十分的便利。所以把图书管理与现在网络相结合。在图书馆发展的整个过程中,图书担负着最重要的角色。为满足如今日益复杂的管理需求,各类管理系统程序也在不断改进。本课题所设计的图书管理系统,使用B/S架构,php语言进行...
    99+
    2023-09-10
    html5 php json javascript jquery Powered by 金山文档
  • 基于Java和MySQL的图书管理系统示例
    这篇文章主要介绍了基于Java和MySQL的图书管理系统示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java图书管理系统项目需求随着计...
    99+
    2024-04-02
  • 基于php的图书信息管理系统
    本系统采用phpstudy开发平台,采用PHP和MySQL数据库进行开发,开发工具为HBuilder。 phpStudy是一个PHP调试环境的程序集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,...
    99+
    2023-10-03
    php mysql apache
  • 基于python实现图书管理系统
    本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下 添加新书 查询 借阅 二次添加新书(读取已有的.xls并修改) 代码: imp...
    99+
    2024-04-02
  • 基于JAVA图书馆管理系统设计与实现
    【后台管理员功能】 广告管理:设置小程序首页轮播图广告和链接 留言列表:所有用户留言信息列表,支持删除 会员列表:查看所有注册会员信息,支持删除 资讯分类:录入、修改、查看、删除资讯分类 录入资讯:录入资讯标题、内容等信息 管理资讯:查看已...
    99+
    2023-09-03
    java 前端 小程序
  • Java Web程序设计——图书管理系统
    这是一个图书管理系统,都是用原生的·Java Web写的,前后端代码都是自己写的。第一次写博客希望大家能够支持。 项目结构图览 采用的工具与技术 前端页面设计:html+css 后端技术:jsp+servlet+javaBean+jdbc...
    99+
    2023-09-04
    java 前端 开发语言 mysql sql
  • Java Web实现简易图书管理系统
    本文实例为大家分享了Java Web实现简易图书管理系统的具体代码,供大家参考,具体内容如下 前言 首先实现的是用户的登录注册,注册成功后自动跳转到图书列表页面,之后实现图书的增删改...
    99+
    2024-04-02
  • Java+MySQL 图书管理系统
    目录一,功能二,工具三、效果图:四、数据库设计五、JAVA层次分析六、主要Java代码分析一,功能 管理员登录 图书借阅信息管理 图书信息管理 管理员更改密码 退出系统 二,工具 E...
    99+
    2024-04-02
  • Java实战之基于I/O流设计的图书管理系统
    目录一、前言二、项目介绍三、项目说明四、项目实现五、总结一、前言 当前,我还没有学到数据库相关的知识,想要完全通过Java来完成一个可以存储数据的图书馆管理系统就只能使用I/O流的知...
    99+
    2024-04-02
  • 基于Java+Spring的图书管理系统详细设计和实现
     博主介绍:✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码...
    99+
    2023-09-01
    java 图书管理系统 大学生项目实战 mysql数据库 后端
  • 基于PHP的图书管理系统的设计与实现
    1 引言 5 1.1 总体概述 6 1.2 开发背景 6 1.3 开发目的 6 1.4 本系统的开发环境 6 1.4.1 开发工具与环境 6 1.4.2 软硬件平台选择 7 2 系统分析 7 2.1 ...
    99+
    2023-09-16
    php Html MySQL 图书管理系统 毕业设计
  • web图书管理系统(HTML+CSS+JS+PHP)
    看很多人都写了图书管理系统,所以自己也来试试 前言 本项目是一个基于PHP的图书管理系统,实现了登录、注册和基本的增删查改操作 使用的技术是php,html,bootstrap,Mysql,小皮等 前端界面: 前台登录页面 ...
    99+
    2023-10-01
    前端 Powered by 金山文档
  • java实现图书管理系统
    本文通过实例为大家分享了java实现图书管理系统的具体代码,供大家参考,具体内容如下 一、背景介绍 通过一段时间java编程的学习,需要一个比较综合的实例来进行编程的练习,是一个对前...
    99+
    2024-04-02
  • java+Mysql 图书管理系统(idea)
    目录 前言 部分界面截图 登录界面 注册界面 图书管理界面 关于我们界面  部分代码 登录界面 数据库工具类 前言 jdk 版本:openjdk version "11.0.12" MySql版本:5.7.40 加(vx:lixua...
    99+
    2023-09-30
    java intellij-idea mysql
  • 基于PHP+MySQL图书管理系统的设计与实现
    开发本图书管理系统目的是为了实现对图书馆的图书,借阅等进行科学化的管理,便于图书信息以及借阅信息的查询和安全控制,提高设备使用效率,减少维护成本。 图书管理系统实现对图书的管理和借阅管理,利用PHP及...
    99+
    2023-09-03
    php 开发语言
  • PHP基于thinkphp的网上图书管理系统#毕业设计
    本论文主要论述了如何使用php语言开发一个网上图书管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,将论述网上图书管理系统的当前背景以及系统开发的目的,...
    99+
    2023-09-13
    php 开发语言
  • 《Java》图书管理系统(已升级)
    目录 前言 效果展示  功能模块 书架 定义书的类  创建书架  用户 User用户类 AdminUser管理员 NormalUser普通用户   功能 接口 FindOperation 查找图书  AddOperation添加图书  D...
    99+
    2023-10-03
    java 数据结构
  • 基于PHP+MySQL的图书馆图书借阅系统
    基本每一个高校都有自己的图书馆,图书馆是一个知识的海洋,所以基本每个学生都喜欢到图书的海洋中选择自己喜欢的图书进行阅读,但是很多时候可能不能够一直呆在图书馆看书,所以就要对图书进行借阅并在规定的时间内...
    99+
    2023-10-03
    php mysql 数据库
  • 基于web的小区物业管理系统
    摘要 计算机网络如果结合使用信息管理系统,能够提高管理员管理的效率,改善服务质量。优秀的小区物业管理系统能够更有效管理小区物业业务规范,帮助管理者更加有效管理小区物业,可以帮助提高克服人工管理带来的错误等不利因素。所以一个优秀的小区物业管理...
    99+
    2023-09-11
    前端 php 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作