<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>AddAdPic.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

<script type="text/javascript">
function isOK() {
var picName = document.getElementById("picName").value;
var filePath = document.getElementById("picFilePath").value;
if(picName == "" || filePath == "") {
return false;
}
}
</script> </head> <body>
<fieldset style="width: 350px">
<legend>
添加图片广告
</legend>
<form method="post" id="picForm" action="/SimpleAdvertisementSystem/piccontrol" 
onsubmit="return isOK()" enctype="MULTIPART/FORM-DATA">
<table>
<tr>
<td>
广告名&nbsp;&nbsp;
</td>
<td>
<input type="text" id="picName" name="picName" />
</td>
</tr>
<tr>
<td>
广告图片&nbsp;&nbsp;
</td>
<td>
<input type="file" id="picFilePath" name="picFilePath" />
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
<input type="submit" id="picSubmit" value="确定">
</td>
<td>
<input type="reset" id="picReset" />
</td>
</tr>
</table>
</form>
</fieldset>
</body>
</html>
package controller;import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import model.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.disk.*;public class AdPicServlet extends HttpServlet {
private String filePath; // 存放上传文件的目录
private String tempFilePath; // 存放临时文件的目录 public void init(ServletConfig config) throws ServletException {
super.init(config);
filePath = config.getInitParameter("filePath");
tempFilePath = config.getInitParameter("tempFilePath"); filePath = this.getServletContext().getRealPath(filePath);
tempFilePath = this.getServletContext().getRealPath(tempFilePath);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

try {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4 * 1024);
factory.setRepository(new File(tempFilePath)); ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(4 * 1024 * 1024); List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
if (item.isFormField()) { } else {
processUploadedFile(item);
}
}
} catch (Exception ex) {
ex.printStackTrace();
} //执行插入数据库操作
PicInfoGo pig = new PicInfoGo();
pig.picInfoInsert(request); //执行跳转操作
this.getServletContext().getRequestDispatcher("/show.jsp").forward(
request, response);
} private void processUploadedFile(FileItem item) {
String fileName = item.getName(); //获得文件的名字
long fileSize = item.getSize(); //获得文件的大小 if (fileName.equals("") && fileSize == 0) {
return;
} File uploadedFile = new File(filePath + "\\" +fileName); try {
item.write(uploadedFile);
} catch (Exception e) {
e.printStackTrace();
}

}
}
package model;import javax.servlet.http.*;
import model.entity.*;
import model.dataaccess.*;public class PicInfoGo { public PicInfoGo() { } PicInfo pi = new PicInfo();
PicInfoService pis = new PicInfoService(); public void picInfoInsert(HttpServletRequest request) {
String picName = request.getParameter("picName").trim();
String picFilePath = request.getParameter("picFilePath").trim(); pi.setAdPicName(picName);
pi.setAdPicPicpath(picFilePath);
pi.setAdPicClickCount(0); pis.insertAd(pi);
}
}
严重: Servlet.service() for servlet AdPicServlet threw exception
java.lang.NullPointerException
at model.PicInfoGo.picInfoInsert(PicInfoGo.java:17)

解决方案 »

  1.   

    编辑器坏了?最后一个程序
    String picName = request.getParameter("picName").trim();
    这个地方
      

  2.   

    解决了,问题就在MULTIPART/FORM-DATA
      

  3.   

    enctype="MULTIPART/FORM-DATA"
    直接request.getParameter("xxx")是null的
      

  4.   


     
    //执行插入数据库操作
            PicInfoGo pig = new PicInfoGo();
            pig.picInfoInsert(request);//执行跳转操作pig.picInfoInsert(upload.getRequest());
    楼主是替换了 pig.picInfoInsert(request);
    这句吗?