这个空指针怎么解决啊?

来源:2-3 初始化集合

ding_yang

2018-10-27 20:39:14


package com.cx.mvc;


import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;


import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


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 org.eclipse.jdt.internal.compiler.ast.SuperReference;


public class FoodAddServlet extends HttpServlet {

private static final long serialVersionUID = 1L;


@Override

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

try {

DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();

ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);

List<FileItem> list = servletFileUpload.parseRequest(request);

Map<String, String> map = new HashMap<String, String>();

Map<String, Food> maps = new HashMap<String, Food>();

for (FileItem fileItem : list) {

if(fileItem.isFormField()) {

String name = fileItem.getFieldName();

String value = fileItem.getString("UTF-8");

map.put(name, value);

}else {

}

}

Food food = new Food();

for (String s : map.keySet()) {

String str = map.get(s);

if(s.equals("id")) {

food.setId(str);

}else if(s.equals("name")) {

food.setName(str);

}else if(s.equals("taste")) {

food.setTaste(str);

}else if(s.equals("price")) {

food.setPrice(str);

}else if(s.equals("description")) {

food.setDescription(str);

}else if(s.equals("path")) {

food.setPath(str);

}

}

maps.put(food.getId(), food);

request.setAttribute("maps", maps);

List<Map<String, Food>> db = (List<Map<String, Food>>) this.getServletContext().getAttribute("db");

db.add(maps);

this.getServletContext().setAttribute("db", db);

for(Map m : db) {

System.out.println(m);

}

} catch (FileUploadException e) {

e.printStackTrace();

}

}


@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

doGet(req, resp);

}

}


写回答

1回答

一叶知秋519

2018-10-28

空指针异常是由于操作 空对象导致的,建议同学根据报错信息,定位到发生异常的代码,检查一下调用方法的对象是不是为空,如果还有问题,建议同学将你的报错信息贴下,方便帮助你解答

祝学习愉快!

0

0 学习 · 10204 问题

查看课程