servlet与jsp综合-图书管理系统

首先声明,我写的不是很好,是个新手,这是我提供的一些思路,勿喷,有问题欢迎指出。

步骤:

  1. 使用idea创建工程,创建com.xxxxx.dao
  2. 创建Book实体类。根据你的数据库创造的成员变量,包含方法和声明。(Auto incr建议点上,它是让id逐渐增大的)
    package com.lvshuai90104.dao;
    
    public class Book {
        private int id;
        private String bookName;
        private String bookAuthor;
        private String bookPublish;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getBookName() {
            return bookName;
        }
    
        public void setBookName(String bookName) {
            this.bookName = bookName;
        }
    
        public String getBookAuthor() {
            return bookAuthor;
        }
    
        public void setBookAuthor(String bookAuthor) {
            this.bookAuthor = bookAuthor;
        }
    
        public String getBookPublish() {
            return bookPublish;
        }
    
        public void setBookPublish(String bookPublish) {
            this.bookPublish = bookPublish;
        }
    
        public Book(int id, String bookName, String bookAuthor, String bookPublish) {
            this.id = id;
            this.bookName = bookName;
            this.bookAuthor = bookAuthor;
            this.bookPublish = bookPublish;
        }
    
        public Book(String bookName, String bookAuthor, String bookPublish) {
            this.bookName = bookName;
            this.bookAuthor = bookAuthor;
            this.bookPublish = bookPublish;
        }
    }
    

    3接口BookDaoimpl,这是你所有的方法,增删改查。

    package com.lvshuai90104.dao;
    
    import java.util.ArrayList;
    
    public interface BookDaoimpl {
        //得到所有的书的信息
        public abstract ArrayList<Book> getBookList();
        //添加一本书
        public abstract void addBook(Book book);
        //删除一本书
        public abstract void delBook(int id);
        //查找书
        public abstract Book getBookById(int id);
        //更改书
        public abstract void modifyBook(Book book);
    }
    

    4、ConnFactory链接数据库。

    package com.lvshuai90104.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class ConnFactory {
        
        public static final String URL = "jdbc:mysql://localhost:3306/book?characterEncoding=UTF-8&amp;eroDateTimeBehavior=convertToNull";
        public static final String  USER = "root";
        public static final String PASSWORD = "123456";
        public static Connection getConn(){
            Connection conn = null;
            try {
                //加载驱动链接
                Class.forName("com.mysql.jdbc.Driver");
                //建立链接
                conn = DriverManager.getConnection(URL, USER, PASSWORD);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }finally {
                return conn;
            }
        }
        //关闭链接
        public static void closeConn(Connection conn){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    

    5、BookDao,实现方法。

package com.lvshuai90104.dao;
import java.sql.*;
import java.util.ArrayList;
public class BookDao implements BookDaoimpl {
    @Override
    //获取所有的书籍
    public ArrayList<Book> getBookList() {
        //定义一个Book类型的数组booklist
        ArrayList<Book>booklist = new ArrayList<>();
        //链接数据库
        Connection conn = ConnFactory.getConn();
        Statement stmt = null;
        ResultSet rs = null;
        try {
            //通过MySql的JDBC驱动访问数据库
            stmt = conn.createStatement();
            //rs储存查询结果
            rs = stmt.executeQuery("SELECT * FROM book");
            //将rs的值放入book里,再添加到booklist里,通过循环全部放在booklist里
           while (rs.next()){
              Book book = new Book(rs.getInt("id"),rs.getString("book_name"),rs.getString("book_author"),rs.getString("book_publish"));
              booklist.add(book);
           }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //返回booklist
        return booklist;
    }

    @Override
    public void addBook(Book book) {
        Connection conn = ConnFactory.getConn();
        //测试插入数据库
        PreparedStatement pstmt = null;
        try {
            String inset = "insert into book(book_name,book_author,book_publish) values (?,?,?)";
            pstmt = conn.prepareStatement(inset);
            //1,2,3分别对应后面三个?位置
            pstmt.setString(1,book.getBookName());
            pstmt.setString(2,book.getBookAuthor());
            pstmt.setString(3,book.getBookPublish());
            //这句不要丢
            pstmt.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ConnFactory.closeConn(conn);
    }

    @Override
    public void delBook(int id) {
        Connection conn = ConnFactory.getConn();
        PreparedStatement pstmt = null;;
        try{
            String inset = "delete from book where id=?";
            pstmt = conn.prepareStatement(inset);
            pstmt.setInt(1,id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ConnFactory.closeConn(conn);
    }

    @Override
    public Book getBookById(int id) {
        Connection conn = ConnFactory.getConn();
        Statement stmt = null;
        ResultSet rs = null;
        Book book = null;
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery("SELECT * FROM where id="+id);
            while (rs.next()){
                book = new Book(rs.getInt("id"),rs.getString("book_name"),rs.getString("book_author"),rs.getString("book_publish"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ConnFactory.closeConn(conn);
        return book;
    }

    @Override
    public void modifyBook(Book book) {
        Connection conn = ConnFactory.getConn();
        PreparedStatement pstmt = null;;
        try{
            String inset = "update book set book_name=?,book_author=?,book_publish=? where id = ?";
            pstmt = conn.prepareStatement(inset);
            pstmt.setString(1,book.getBookName());
            pstmt.setString(2,book.getBookAuthor());
            pstmt.setString(3,book.getBookPublish());
            pstmt.setInt(4,book.getId());
            pstmt.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        ConnFactory.closeConn(conn);
    }
}

6、为了防止汉字出现乱码设置过滤器CharsetFilter

package com.lvshuai90104.dao;

import javax.servlet.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebFilter(filterName = "CharsetFilter",urlPatterns = "/*")
public class CharsetFilter implements Filter {
    public void init(FilterConfig config) throws ServletException {
    }

    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html; charset=UTF-8");
        chain.doFilter(request, response);
    }
}

7、BookServlet1,创建servlet,用来把数据发送给servlet

package Servlet;

import com.lvshuai90104.dao.Book;
import com.lvshuai90104.dao.BookDao;

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 java.io.IOException;
import java.util.ArrayList;

@WebServlet(name = "BookServlet1",urlPatterns = "/BookServlet1")
public class BookServlet1 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        BookDao dao = new BookDao();
        ArrayList<Book> books = dao.getBookList();
        //将books的值并赋予books
        request.getSession().setAttribute("books",books);
        //将值发送给index.jsp
        response.sendRedirect("index.jsp");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

8、index.jsp,用来在网页显示数据。

<%@ page import="java.util.ArrayList" %>
<%@ page import="com.lvshuai90104.dao.Book" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--c标签,需要导入jstl.jar和standard.jar--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <table border="1">
    <tr><td>id</td><td>name</td><td>author</td><td>publish</td></tr>
<%--通过session获取books(bookservlet1)--%>
    <c:forEach items="${sessionScope.books}" var="books">
      <tr>
        <td>${books.id}</td>
        <td>${books.bookName}</td>
        <td>${books.bookAuthor}</td>
        <td>${books.bookPublish}</td>
      </tr>
    </c:forEach>

  </table>
  <a href="addbook.jsp">添加图书</a>
  </body>
</html>

配置jar包

 9、AddBook添加书的jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="AddBook.do" method="post">
    name:<input type="text" name="bookName"/><br>
    author:<input type="text" name="bookAuthor"/><br>
    publish:<input type="text" name="bookPublish"/><br>
    <input type="submit">
</form>
</body>
</html>

10、AddBook,创建servlet,实现添加书servlet

package Servlet;

import com.lvshuai90104.dao.Book;
import com.lvshuai90104.dao.BookDao;

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 java.io.IOException;

@WebServlet(name = "AddBook",urlPatterns = "/AddBook.do")
public class AddBook extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取addbook的值。
        String bookName = request.getParameter("bookName");
        String bookAuthor = request.getParameter("bookAuthor");
        String bookPublish = request.getParameter("bookPublish");
        BookDao dao = new BookDao();
        //将获取的值放在book中
        Book book = new Book(bookName,bookAuthor,bookPublish);
        //将book通过dao方法插入数据库中
        dao.addBook(book);
        //将值传给BookServlet1中,并跳转到BookServlet1
        response.sendRedirect("BookServlet1");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          this.doPost(request,response);
    }
}

结构图

 还有几个功能没实现,有时间我会继续修改,希望对大家有用。

可以加我qq要源码1469131641

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
JSPJavaBean、Servlet和MVC模式都是Java Web开发非常常用的技术。图书管理系统是一个常见的Web应用程序,下面将介绍如何使用JSPJavaBean、Servlet和MVC模式来实现图书管理系统JSPJava Server Pages)是一种Java Web技术,可以将Java代码嵌入到HTML页面,从而实现动态的Web内容。在图书管理系统,可以使用JSP来呈现图书信息、读者信息和借书信息等页面。 JavaBean是一种Java语言的标准组件,具有可重用性和可组合性的特点。在图书管理系统,可以使用JavaBean来表示图书读者和借书信息等数据模型,从而实现数据的封装和重用。 Servlet是一种Java Web技术,用于在Web服务器上运行Java程序。在图书管理系统,可以使用Servlet来处理用户请求,例如添加图书、查询图书、删除图书等操作。 MVC模式是一种设计模式,用于将应用程序分成模型、视图和控制器三个部分。在图书管理系统,模型部分可以使用JavaBean表示数据模型,视图部分可以使用JSP呈现页面,控制器部分可以使用Servlet处理用户请求,从而实现业务逻辑和用户界面之间的分离。 综上所述,JSPJavaBean、Servlet和MVC模式都是Java Web开发非常重要的技术,可以被应用在图书管理系统。利用这些技术,可以实现一个高效、可扩展和容易维护的Web应用程序,从而提高系统的可靠性和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿柒七柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值