老师报错啦,帮忙看一下呗
[Category [cid=1, cname=动物画, cdesc=aaa], Category [cid=2, cname=植物画, cdesc=bbb], Category [cid=10, cname=人物画, cdesc=人物画描述]] org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:885) at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331) at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349) at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) at com.zcl.utils.UploadUtils.uploadFile(UploadUtils.java:48) at com.zcl.web.action.ProductServlet.update(ProductServlet.java:50) at com.zcl.web.action.ProductServlet.doGet(ProductServlet.java:38) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.zcl.web.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:28) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) 九月 18, 2019 10:51:48 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [com.zcl.web.action.ProductServlet] in context with path [/shop1] threw exception java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at com.zcl.web.action.ProductServlet.update(ProductServlet.java:54) at com.zcl.web.action.ProductServlet.doGet(ProductServlet.java:38) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.zcl.web.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:28) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)
下面是页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<!-- Mirrored from admindesigns.com/demos/absolute/1.1/admin_forms-validation.html by HTTrack Website Copier/3.x [XR&CO'2014], Thu, 06 Aug 2015 02:56:15 GMT -->
<head>
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<title>油画商城--修改商品</title>
<link rel="stylesheet" type="text/css"
href="${pageContext.request.contextPath }/assets/skin/default_skin/css/theme.css">
<link rel="stylesheet" type="text/css"
href="${pageContext.request.contextPath }/assets/admin-tools/admin-forms/css/admin-forms.css">
<link rel="shortcut icon"
href="${pageContext.request.contextPath }/assets/img/favicon.ico">
</head>
<body class="admin-validation-page" data-spy="scroll"
data-target="#nav-spy" data-offset="200">
<div id="main">
<%@ include file="header.jsp"%>
<%@ include file="left.jsp"%>
<section id="content_wrapper">
<section id="content" class="table-layout animated fadeIn">
<div class="tray tray-center">
<div class="content-header">
<h2>编辑商品信息</h2>
<p class="lead"></p>
</div>
<div class="admin-form theme-primary mw1000 center-block"
style="padding-bottom: 175px;">
<div class="panel heading-border">
<form action="${pageContext.request.contextPath }/admin/ProductServlet?method=update"
method="post" enctype="multipart/form-data">
<input type="hidden" name="pid" value="${product.pid }">
<input type="hidden" name="filename" value="${product.filename }">
<input type="hidden" name="path" value="${product.path }">
<div class="panel-body bg-light">
<div class="section-divider mt20 mb40">
<span> 基本信息 </span>
</div>
<div class="section row">
<div class="col-md-2"></div>
<div class="col-md-1">
<label for="sn" class="field prepend-icon"> <label
for="sn" class="field-icon"> 名称 </label>
</label>
</div>
<div class="col-md-6">
<label for="sn" class="field"> <input id="sn"
name="pname" class="gui-input" placeholder="${product.pname }"
type="text" value="" />
</label>
</div>
</div>
<div class="section row">
<div class="col-md-2"></div>
<div class="col-md-1">
<label for="sn" class="field prepend-icon"> <label
for="sn" class="field-icon"> 作者 </label>
</label>
</div>
<div class="col-md-6">
<label for="sn" class="field"> <input id="sn"
name="author" class="gui-input" placeholder="${product.author }"
type="text" value="" />
</label>
</div>
</div>
<div class="section row">
<div class="col-md-2"></div>
<div class="col-md-1">
<label for="sn" class="field prepend-icon"> <label
for="sn" class="field-icon"> 价格 </label>
</label>
</div>
<div class="col-md-6">
<label for="sn" class="field"> <input id="sn"
name="price" class="gui-input" placeholder="${product.price }"
type="text" value="" />
</label>
</div>
</div>
<div class="section row">
<div class="col-md-2"></div>
<div class="col-md-1">
<label for="sn" class="field prepend-icon"> <label
for="sn" class="field-icon"> 分类 </label>
</label>
</div>
<div class="col-md-6">
<label for="sn" class="field select"> <select
id="departmentSn" name="cid" class="gui-input"
placeholder="分类...">
<c:forEach var="category" items="${categoryList}">
<option value="${category.cid }" <c:if test="${category.cid==product.category.cid }">selected</c:if>>${category.cname}</option>
</c:forEach>
</select>
<i class="arrow double"></i>
</label>
</div>
</div>
<div class="section row">
<div class="col-md-2"></div>
<div class="col-md-1">
<label for="sn" class="field prepend-icon"> <label
for="sn" class="field-icon"> 图片 </label>
</label>
</div>
<div class="col-md-6">
<label for="name" class="field"> <input id="name"
name="filename" class="gui-input" placeholder="价格" type="file"
value="上传图片" />
</label>
</div>
</div>
<div class="section row">
<div class="col-md-2"></div>
<div class="col-md-1">
<label for="sn" class="field prepend-icon"> <label
for="sn" class="field-icon"> 描述 </label>
</label>
</div>
<div class="col-md-6">
<label for="address" class="field"> <input
id="address" name="address" class="gui-input"
placeholder="${product.description }" type="text" value="" />
</label>
</div>
</div>
<div class="panel-footer text-center">
<button type="submit" class="button">保存</button>
<button type="button" class="button"
onclick="javascript:window.history.go(-1);">返回</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
</section>
</div>
<style>
/* demo page styles */
body {
min-height: 2300px;
}
.content-header b, .admin-form .panel.heading-border:before, .admin-form .panel .heading-border:before
{
transition: all 0.7s ease;
}
/* responsive demo styles */
@media ( max-width : 800px) {
.admin-form .panel-body {
padding: 18px 12px;
}
}
</style>
<style>
.ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year
{
width: 48%;
margin-top: 0;
margin-bottom: 0;
line-height: 25px;
text-indent: 3px;
color: #888;
border-color: #DDD;
background-color: #FDFDFD;
-webkit-appearance: none; /*Optionally disable dropdown arrow*/
}
</style>
<script src="vendor/jquery/jquery-1.11.1.min.js"></script>
<script src="vendor/jquery/jquery_ui/jquery-ui.min.js"></script>
<script src="assets/admin-tools/admin-forms/js/jquery.validate.min.js"></script>
<script
src="assets/admin-tools/admin-forms/js/additional-methods.min.js"></script>
<script
src="assets/admin-tools/admin-forms/js/jquery-ui-datepicker.min.js"></script>
<script src="assets/js/utility/utility.js"></script>
<script src="assets/js/demo/demo.js"></script>
<script src="assets/js/main.js"></script>
<script type="text/javascript" src="js/pages.js"></script>
<script type="text/javascript" src="js/items.js"></script>
</body>
</html>下面是ProductServlet中的方法
/**
* 修改产品的方法
* @param request
* @param response
* @throws IOException
*/
private void update(HttpServletRequest request, HttpServletResponse response) throws IOException {
//1、接收参数,由于表单修改enctype属性,所以需要通过fileUpload中的API接收参数。
Map<String,String> map = UploadUtils.uploadFile(request);
//2、封装数据(通过工具类获取到参数,并且存放到一个Map集合中,从map中获取参数并且封装)
Product product = new Product();
product.setPid(Integer.parseInt(map.get("pid")));
product.setPname(map.get("pname"));
product.setAuthor(map.get("author"));
product.setPrice(Double.parseDouble(map.get("price")));
product.setDescription(map.get("description"));
product.setFilename(map.get("filename"));
product.setPath(map.get("path"));
product.getCategory().setCid(Integer.parseInt(map.get("cid")));
//3、调用业务层面处理数据
ProductService productService = new ProductServiceImpl();
productService.update(product);
//4、页面跳转
response.sendRedirect(request.getContextPath()+"/ProductServlet?method=findAll");
}在我一点击修改商品的时候就报错了。我自己在网上查了
第一个错误,可能是没有加enctype属性,我这个一直都加的。
第二个是Integer.parse()这个方法中的参数为空。但是也不能为空吧。现在找不到原因老师。
4
收起
正在回答 回答被采纳积分+1
1回答
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星