【JAVA程序设计】(C00085)基于Servlet+jsp的图书信息管理

发布于:2022-11-08 ⋅ 阅读:(396) ⋅ 点赞:(0)

项目简介

基于Servlet+jsp的图书信息管理系统;
功能简单,适合学习以及大作业等,jsp页面,form表单提交数据,对图书信息进行增删改成操作
使用MVC设计模式开发

项目获取

源码获取地址

开发环境

运行环境:推荐jdk1.8;
开发工具:eclipse以及idea(推荐);
操作系统:windows 10 8G内存以上(其他windows以及macOS支持,但不推荐);
浏览器:Firefox(推荐)、Google Chrome(推荐)、Edge;
数据库:MySQL8.0(推荐)及其他版本(支持,但容易异常尤其MySQL5.7(不含)以下版本);
数据库可视化工具:Navicat Premium 15(推荐)以及其他Navicat版本
是否maven项目:否

项目技术

后端:mysql、jdbc、servlet
前端:jsp

相关代码

  • JDBC链接数据库(DBUtil.java)
package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 数据库连接工具
 */
public class DBUtil {
    
    public static String db_url = "jdbc:mysql://localhost:3306/book?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
    public static String db_user = "root";
    public static String db_pass = "123456";
    
    public static Connection getConn () {
        Connection conn = null;
        
        try {
            //Class.forName("com.mysql.jdbc.Driver");// mysql5.7以下加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver"); //mysql5.7及以上 还得修改WebContent下WEB-INF下lib中的mysql链接包  下载一个8.x的jar包代替即可
            conn = DriverManager.getConnection(db_url, db_user, db_pass);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return conn;
    }
    
    /**
     * 关闭连接
     * @param state
     * @param conn
     */
    public static void close (Statement state, Connection conn) {
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    public static void close (ResultSet rs, Statement state, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
  • Servlet层代码(BookServlet.java)
package servlet;

import java.io.IOException;
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 bean.Books;
import dao.BookDao;

@WebServlet(name="/BookServlet",urlPatterns="/book")
public class BookServlet extends HttpServlet {
	
  //所有请求都会走这个接口,根据接口后面的参数不一样,走不同的处理接口
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");// 放在第一行
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=UTF-8");
		String method = request.getParameter("method");
		BookDao ud = new BookDao();
		
		switch (method) {
		case "delete":
			Integer id = Integer.parseInt(request.getParameter("id"));
			ud.delete(id);
			response.sendRedirect("index.jsp");
			break;
		case "addPage":
			request.getRequestDispatcher("add.jsp").forward(request, response);
			break;
		case "add":

			add(request,response);
			break;
		case "editPage":
		
			updatePage(request,response);
			break;
		case "update":
			
			update(request,response);
			break;
		default:
			break;
		}
	}
	//修改接口
	private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String authon = request.getParameter("authon");  //作者
		String name = request.getParameter("name"); //书名
		Integer num = Integer.parseInt(request.getParameter("num")); //数量
		Integer id = Integer.parseInt(request.getParameter("id")); //主键id
		Double price = Double.parseDouble(request.getParameter("price"));  //价格
		Books book = new Books();
		book.setAuthon(authon);
		book.setId(id);
		book.setName(name);
		book.setNum(num);
		book.setPrice(price);
		
		BookDao ud = new BookDao();
		
		ud.update(book, id);
		response.sendRedirect("index.jsp");
	}

	//跳转到修改页面
	private void updatePage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    int id = Integer.parseInt(request.getParameter("id"));
	    BookDao ud = new BookDao();
	    Books book = ud.getById(id);
	    request.setAttribute("book",book);

	    request.getRequestDispatcher("updata.jsp").forward(request, response);
	    
	}
	//新增接口
	private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String authon = request.getParameter("authon");  //作者
		String name = request.getParameter("name");    //书名
		Integer num = Integer.parseInt(request.getParameter("num"));  //数量
		Double price = Double.parseDouble(request.getParameter("price")); //价格
		
		Books book = new Books();
		book.setAuthon(authon);
		book.setName(name);
		book.setNum(num);
		book.setPrice(price);
		BookDao ud = new BookDao();
		ud.add(book);
		response.sendRedirect("index.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

运行截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到