<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Add new product</title>
<link type="text/css" rel="Stylesheet" href="css/SiteStyle.css" />
<script src="js/jquery-1.3.2.js" type="text/javascript"></script>
</head>
<body>
<form id="MainForm" action="Relay" method="post" enctype="multipart/form-data">
<input name="destination" type="hidden" value="AddNewProduct" />
<script src="js/AddNewProduct.js" type="text/javascript"></script>
<center>
<h1>Add new product</h1>
<hr />
<table class="TableLogin">
<tr>
<td align="center" colspan="2" class="TDLoginHeader">
Product information</td>
</tr>
<tr>
<td align="right" class="TDLoginTitle">
Product Title
</td>
<td align="left" class="TDLoginText">
<input id="TxtTitle" type="text" class="LoginTextBoxes" name="Title" maxlength="75" /></td>
</tr>
<tr>
<td align="right" class="TDLoginTitle">
Dollar price
</td>
<td align="left" class="TDLoginText">
<input id="TxtPrice" type="text" class="LoginTextBoxes" name="Price" maxlength="15" /></td>
</tr>
<tr>
<td align="center" colspan="2" class="TDLoginTitle">
Product number</td>
</tr>
<tr>
<td align="center" colspan="2">
<table style="width:100%;">
<tr>
<td align='center' class='TDProductNumber'>
<input id='Txtdigit1' name='Txtdigit1' class='TxtProductNumber' type='text' />
</td>
<td align='center' class='TDProductNumber'>
<input id='Txtdigit2' name='Txtdigit2' class='TxtProductNumber' type='text' />
</td>
<td align='center' class='TDProductNumber'>
<input id='Txtdigit3' name='Txtdigit3' class='TxtProductNumber' type='text' />
</td>
<td align='center' class='TDProductNumber'>
<input id='Txtdigit4' name='Txtdigit4' class='TxtProductNumber' type='text' />
</td>
<td align='center' class='TDProductNumber'>
<input id='Txtdigit5' name='Txtdigit5' class='TxtProductNumber' type='text' />
</td>
<td align='center' class='TDProductNumber'>
<input id='Txtdigi6' name='Txtdigit6' class='TxtProductNumber' type='text' />
</td>
<td align='center' class='TDProductNumber'>
<input id='Txtdigit7' name='Txtdigit7' class='TxtProductNumber' type='text' />
</td>
</tr>
<tr>
<td colspan="7" class="TDLoginTitle">
<label>Product Image</label>
<input id="ProductImage" name="ProductImage" type="file" />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input id="BtnAdd" type="button" value="Add" class="BtnSize" /></td>
</tr>
</table>
<div id="DivAddMessage">
</div>
<div>
<a href='Login.jsp'>Back</a>
</div>
</center>
</form>
</body>
</html>
Servlet'中继'代码:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String destination=request.getParameter("destination");
out.print(destination);
}
这是输入产品信息的一段代码(标题,价格,7位数字,产品图片),当我想在servlet中获取'destination'参数时得到的值为null我知道因为多部分请求,但是我怎么能得到这个值和文件上传值?
答案 0 :(得分:2)
由于您使用多部分编码('multipart / form-data')发布,因此参数不会按预期存在。
例如,如果您使用commons-fileupload,则参数将以FileItem对象上的'isFormField'方法显示为可识别的。
这个关于coderanch的内容解释了如何:coderanch
大多数(每个)现代webframeworks都将它抽象出来,顺便说一下这种东西会变得更容易。 Refer this site it will help you
<强> CODE 强>
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
// Process regular form field (input type="text|radio|checkbox|etc", select, etc).
String fieldname = item.getFieldName();
String fieldvalue = item.getString();
// ... (do your job here)
} else {
// Process form file field (input type="file").
String fieldname = item.getFieldName();
String filename = FilenameUtils.getName(item.getName());
InputStream filecontent = item.getInputStream();
// ... (do your job here)
}
}
} catch (FileUploadException e) {
throw new ServletException("Cannot parse multipart request.", e);
}
// ...
}
答案 1 :(得分:2)
使用注释
@MultipartConfig
用于您的Servlet