为什么会出现空指针异常

为什么会出现空指针异常

@WebServlet(name = "importExcelInitServlet")
public class importExcelServlet extends HttpServlet {
   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       if(ServletFileUpload.isMultipartContent(request)){
           ParaDto paraDto = RequestUtil.parseParam(request) ;
           ImportExcelParamDto paramDto = new ImportExcelParamDto() ;
           paramDto.setTitles(paraDto.getParamMap().get("title"));
           paramDto.setExcel(paraDto.getFileMap().get("excel"));

           ExcelService service = new ExcelService();
           ImportExcelResultDto resultDto = service.imp(paramDto) ;
           request.setAttribute("result",resultDto);
       } else {

       }
       request.getRequestDispatcher("/WEB-INF/jsp/importExcelResult.jsp").forward(request,response);
   }


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


public class ExcelService {
   public ImportExcelResultDto imp(ImportExcelParamDto paramDto) {
       ImportExcelResultDto excelResultDto = new ImportExcelResultDto();
       excelResultDto.setTitle(paramDto.getTitles());
       List<Student> students = new ArrayList<>();
       excelResultDto.setStudents(students);
       String fileName = null;
       try {
           fileName = FileUtil.save(paramDto.getExcel(), FileUtil.SAVE_PATH);
       } catch (Exception e) {
           e.printStackTrace();
           excelResultDto.setMsg("保存上传文件失败了!");
       }
       Workbook workbook = null;
       if (fileName != null) {
           try {
               //文件传入专门的文件保存类,由文件保存类专门进行保存工作
               workbook = WorkbookFactory.create(new File(fileName));
               Sheet sheet = workbook.getSheet("Sheet1");
               int rowNumber = sheet.getLastRowNum();
               for (int i = 1; i <= rowNumber; i++) {
                   Row row = sheet.getRow(i);
                   Student student = new Student();
                   student.setName(row.getCell(0).getStringCellValue());
                   student.setAge((int) (row.getCell(1).getNumericCellValue()));
                   students.add(student);
               }
           } catch (Exception e) {
               e.printStackTrace();
               excelResultDto.setMsg("解析Excel失败!");
           } finally {
               if (workbook != null) {
                   try {
                       workbook.close();
                   } catch (IOException e){
                       e.printStackTrace();
                   }
               }
           }
       }

       return excelResultDto;
   }
}


public class FileUtil {
   public static  final  String SAVE_PATH = "d:/uploadFile/" ;
   public  static  String save(FileItem fileItem , String filePath) throws  Exception {
       String fileName = System.currentTimeMillis() + "_" + fileItem.getName() ; //取得文件名时加上时间戳,防止相同文件名导致错误
       fileItem.write(new File(filePath + fileName ));
       return fileName ;
   }
}


java.lang.NullPointerException
 at com.imooc.util.FileUtil.save(FileUtil.java:13)
 at com.imooc.service.ExcelService.imp(ExcelService.java:29)
 at com.imooc.servlet.importExcelServlet.doPost(importExcelServlet.java:33)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)


然后最后解析出来的项目没有显示

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕柯南 2019-07-10 15:08:13

同学你好!

  1. 检查一下自己导入页面中与文件相关的名字是否是title和和excel,如果不是改过来呢。同学也可以下载老师的源码对比一下呢

    http://img1.sycdn.imooc.com//climg/5d258e7b00012f0d10030304.jpg

  2. 注意:代码不要贴在回复里哦~可以以回答这个问题的方式贴出。

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

好帮手慕柯南 2019-07-10 10:42:24

同学你好!同学贴一下报错的这几行代码到底是哪一句呢(截图),老师这里的行数与同学的不同呢

http://img1.sycdn.imooc.com//climg/5d2550850001f8ba06140225.jpg

祝学习愉快~


  • 提问者 慕设计3517557 #1
    从上到下分别是 String fileName = System.currentTimeMillis() + "_" + fileItem.getName() ; fileName = FileUtil.save(paramDto.getExcel(), FileUtil.SAVE_PATH); ImportExcelResultDto resultDto = service.imp(paramDto) ;
    2019-07-10 13:57:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师