拒绝访问。

来源:2-4 导入Excel-2

中野二乃

2019-05-13 09:53:55

package servlet;


import dto.parmedto;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import util.requestUtil;

import javax.servlet.ServletException;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.ListIterator;

import static util.requestUtil.parseParam;

public class ExcelServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //判断上传的是否为文件
        if(ServletFileUpload.isMultipartContent(request)){//固定写法
            //如果是则调用工具类实现方法
            parmedto dto=requestUtil.parseParam(request);

        }else{
            //不是文件
        }
    }

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

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;


import java.io.File;
import java.io.IOException;

//解析Excel的内容
public class Excelservice {
    public void imp(){
        //导入poi等包
        try {
            Workbook workbook;
            workbook = WorkbookFactory.create(new File("E:/uplord/import_03_excel.xls"));
            //从0(1)开始取sheet
            Sheet sheet=workbook.getSheetAt(0);
            //取到sheet中的有效行数量
            int rowNum=sheet.getLastRowNum();
            //遍历sheet
            for(int i=1;i<rowNum+1;i++){
                //获得每一行
                Row row=sheet.getRow(i);
                //获得每列
                row.getCell(0);
                //输出内容
                System.out.println("name:"+row.getCell(0).getStringCellValue()+
                        "age:"+row.getCell(1).getNumericCellValue()+"time:"+row.getCell(2).getDateCellValue());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InvalidFormatException e) {
            e.printStackTrace(); }
    }

}
package dto;

import org.apache.commons.fileupload.FileItem;

import java.util.HashMap;
import java.util.Map;

//接收参数map
public class parmedto {
    private Map<String,String> paramap;//参数map
    private Map<String, FileItem> filemap;//文件map
    public parmedto() {
        //无参方法中对象实例化
        paramap=new HashMap<String,String>();
        filemap=new HashMap<String,FileItem>();
    }
    //返回对象到requestUtil

    public parmedto(Map<String, String> paramap, Map<String, FileItem> filemap) {
        this.paramap = paramap;
        this.filemap = filemap;
    }

    public Map<String, String> getParamap() {
        return paramap;
    }

    public void setParamap(Map<String, String> paramap) {
        this.paramap = paramap;
    }

    public Map<String, FileItem> getFilemap() {
        return filemap;
    }

    public void setFilemap(Map<String, FileItem> filemap) {
        this.filemap = filemap;
    }
}
til;

import dto.parmedto;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.List;

//解析工具类
//将标题与文件添加进两组map--parmedto
public class requestUtil {
    public static parmedto parseParam(HttpServletRequest request){
        parmedto result=new parmedto();

        //是文件
        //创建ServletFileUpload对象,参数为新建文件工厂对象
        ServletFileUpload upload=new ServletFileUpload(new DiskFileItemFactory());
        //设置文件编码
        upload.setHeaderEncoding("UTF-8");
        //解析上传的文件,返回一个list<FileItem>集合(标题和上传的文件均被解析进集合)
        try {
            List<FileItem> list=upload.parseRequest(request);
            //for循环遍历集合,判断上传为文件还是标题
            for (FileItem fileItem:list) {
                if(fileItem.isFormField()){
                    //封装进map
                    result.getParamap().put(fileItem.getFieldName(),fileItem.getString("UTF-8"));
                    //如果是标题:打印
                    System.out.println(fileItem.getFieldName()+" "+fileItem.getString("UTF-8"));
                }else{
                    //封装进map
                    result.getFilemap().put(fileItem.getFieldName(),fileItem);
                    //如果是文件上传到指定目录
                    fileItem.write(new File("E:/uplord/" + fileItem.getName()));

                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

}

http://img.mukewang.com/climg/5cd8ce130001eda809270490.jpg能上传不能解析

写回答

1回答

好帮手慕柯南

2019-05-13

同学你好!看报错信息是同学的文件夹禁止访问,同学需要解决一下不能访问的问题,为了节约同学的时间建议同学可以换一个目录进行测试

http://img.mukewang.com/climg/5cd8de640001732f04190057.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

0 学习 · 10204 问题

查看课程