后台添加一本新图书的Servlet 代码

32 篇文章 0 订阅

BookServlet类如下:


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import cn.itcast.domain.Book;
import cn.itcast.domain.Page;
import cn.itcast.service.BusinessService;
import cn.itcast.service.impl.BusinessServiceImpl;
import cn.itcast.utils.WebUtils;

public class BookServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String method = request.getParameter("method");
        if(method.equals("addUI")){
            addUI(request,response);
        }
        if(method.equalsIgnoreCase("add")){
            add(request,response);  //派发请求
        }
        if(method.equalsIgnoreCase("list")){
            list(request,response);
        }
    }

    private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String pagenum = request.getParameter("pagenum");
        BusinessServiceImpl service = new BusinessServiceImpl();
        Page page = service.getBookPageData(pagenum);
        request.setAttribute("page", page);
        request.getRequestDispatcher("/manager/listbook.jsp").forward(request, response);
    }

    private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try{
            Book book = doupload(request);
            BusinessServiceImpl service = new BusinessServiceImpl();
            book.setId(WebUtils.makeID());
            service.addBook(book);
            request.setAttribute("message", "添加成功!!");
        }catch (Exception e) {
            e.printStackTrace();
            request.setAttribute("message", "添加失败!!");
        }
        request.getRequestDispatcher("/message.jsp").forward(request, response);
    }

    private Book doupload(HttpServletRequest request){

        //把上传的图片保存到images目录中,并把request中的请求参数封装到book中
        Book book = new Book();
        try{
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);

            List<FileItem> list = upload.parseRequest(request);
            for(FileItem item : list){
                if(item.isFormField()){
                    String name = item.getFieldName();
                    String value = item.getString("UTF-8");
                    BeanUtils.setProperty(book, name, value);
                }else{
                    String filename = item.getName();
                    String savefilename = makeFileName(filename);//得到保存在硬盘的文件名
                    String savepath = this.getServletContext().getRealPath("/images");
                    InputStream in = item.getInputStream();
                    FileOutputStream out = new FileOutputStream(savepath + "\\" + savefilename);
                    int len = 0;
                    byte buffer[] = new byte[1024];
                    while((len=in.read(buffer))>0){
                        out.write(buffer,0,len);
                    }
                    in.close();
                    out.close();
                    item.delete();
                    book.setImage(savefilename);
                }
            }
            return book;
        }catch (Exception e) {
            throw new RuntimeException(e);

        }
    }

    public String makeFileName(String filename){
        String ext = filename.substring(filename.lastIndexOf("."));
        return UUID.randomUUID().toString() + ext;
    }

    private void addUI(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        BusinessServiceImpl service = new BusinessServiceImpl();
        List categorys = service.getAllCategory();
        request.setAttribute("categorys", categorys);
        request.getRequestDispatcher("/manager/addbook.jsp").forward(request, response);

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doGet(request, response);
    }

}

WebUtils类代码如下:


import java.util.UUID;

public class WebUtils {

    public static String makeID(){
        return UUID.randomUUID().toString();
    }

}

JdbcUtils类代码如下:



import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class JdbcUtils {

    private static DataSource ds = null;
    static{
        ds = new ComboPooledDataSource();
    }

    public static DataSource getDataSource(){
        return ds;
    }

    public static Connection getConnection() throws SQLException{
        return ds.getConnection();
    }

}


DaoFactory代码如下:

package cn.itcast.utils;

public class DaoFactory {

    private static final DaoFactory factory = new DaoFactory();
    private DaoFactory(){}

    public static DaoFactory getInstance(){
        return factory;
    }

    public <T> T createDao(String className,Class<T> clazz){
        try{
            T t = (T) Class.forName(className).newInstance();
            return t;
        }catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

}

FR:海涛高软(QQ技术交流群:386476712)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.需求分析 本图书管理系统主要有以下功能: 1.图书信息管理:包括图书添加、删除、修改和查询等操作。 2.读者信息管理:包括读者的添加、删除、修改和查询等操作。 3.借阅管理:包括借阅图书、归还图书和查询借阅记录等操作。 4.权限管理:包括管理员和普通用户的登录、退出等操作。 2.系统设计 2.1 数据库设计 本系统采用MySQL数据库管理系统,设计了以下几个表: 1.book表:存储图书信息,包括编号、书名、作者、出版社、出版日期、价格、状态等字段。 2.reader表:存储读者信息,包括编号、姓名、性别、年龄、联系方式等字段。 3.borrow表:存储借阅记录,包括编号、读者编号、图书编号、借阅日期、归还日期等字段。 4.user表:存储用户信息,包括用户名、密码、角色等字段。 2.2 系统架构设计 本系统采用B/S架构,前端使用JSP和HTML,后端使用Servlet,数据库使用MySQL。 2.3 系统模块设计 本系统主要包括四个模块:图书信息管理模块、读者信息管理模块、借阅管理模块和权限管理模块。 图书信息管理模块:实现图书添加、删除、修改和查询等操作。 读者信息管理模块:实现读者的添加、删除、修改和查询等操作。 借阅管理模块:实现借阅图书、归还图书和查询借阅记录等操作。 权限管理模块:实现管理员和普通用户的登录、退出等操作。 3.系统实现 3.1 数据库操作 本系统采用JDBC技术进行数据库操作。在DBUtil类中封装了数据库连接和关闭的方法,以及查询、增加、删除、修改数据的方法。 3.2 图书信息管理模块 图书信息管理模块包括以下几个功能: 1.查询图书信息:在页面上输入图书编号或书名,点击查询按钮,系统会从数据库中查询符合条件的图书信息并显示在页面上。 2.添加图书信息:在页面上输入图书信息,点击添加按钮,系统会将输入的信息插入到数据库中。 3.修改图书信息:在页面上选择需要修改的图书,点击修改按钮,系统会将选择的图书信息显示在页面上,并允许用户修改信息,保存修改后的信息到数据库中。 4.删除图书信息:在页面上选择需要删除的图书,点击删除按钮,系统会从数据库中删除选择的图书信息。 3.3 读者信息管理模块 读者信息管理模块包括以下几个功能: 1.查询读者信息:在页面上输入读者编号或姓名,点击查询按钮,系统会从数据库中查询符合条件的读者信息并显示在页面上。 2.添加读者信息:在页面上输入读者信息,点击添加按钮,系统会将输入的信息插入到数据库中。 3.修改读者信息:在页面上选择需要修改的读者,点击修改按钮,系统会将选择的读者信息显示在页面上,并允许用户修改信息,保存修改后的信息到数据库中。 4.删除读者信息:在页面上选择需要删除的读者,点击删除按钮,系统会从数据库中删除选择的读者信息。 3.4 借阅管理模块 借阅管理模块包括以下几个功能: 1.借阅图书:在页面上选择需要借阅的图书和读者,输入借阅日期,点击借阅按钮,系统会将借阅信息保存到数据库中,并将对应图书的状态修改为“借出”。 2.归还图书:在页面上选择需要归还的图书,输入归还日期,点击归还按钮,系统会将借阅信息中的归还日期修改为当前日期,并将对应图书的状态修改为“在库”。 3.查询借阅记录:在页面上输入读者编号或书名,点击查询按钮,系统会从数据库中查询符合条件的借阅记录并显示在页面上。 3.5 权限管理模块 权限管理模块包括以下几个功能: 1.管理员登录:在页面上输入用户名和密码,点击登录按钮,系统会验证用户身份,只有管理员账户才能登录成功。 2.普通用户登录:在页面上输入用户名和密码,点击登录按钮,系统会验证用户身份,只有普通用户账户才能登录成功。 3.退出登录:在任何页面上都可以点击退出按钮,系统会退出当前用户的登录状态。 4.系统演示 系统演示如下图所示: 图书管理系统登录页面 管理员登录页面 普通用户登录页面 图书信息管理页面 读者信息管理页面 借阅管理页面 4.总结 本文介绍了基于JSP Servlet图书管理系统的设计和实现。该系统采用了B/S架构,实现了图书信息管理、读者信息管理、借阅管理和权限管理等功能。通过该系统的实现,可以更好地管理图书和读者信息,方便借阅和归还图书,提高了图书管理的效率和精度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值