后台添加一本新图书的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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值