这个空指针怎么解决啊?
来源: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
空指针异常是由于操作 空对象导致的,建议同学根据报错信息,定位到发生异常的代码,检查一下调用方法的对象是不是为空,如果还有问题,建议同学将你的报错信息贴下,方便帮助你解答
祝学习愉快!
相似问题