Reputation: 41
<%@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 'Relay' code:
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);
}
this is a piece of code for enter product inforamtion (title , price , 7 digit number, product image) , when i want to get 'destination' parameter in servlet the value got is null i know that because multipart request , but how i can get this value and the file uploaded value ?
Upvotes: 2
Views: 17450
Reputation: 4713
Since you post using multipart encoding ('multipart/form-data') the parameters are not present as you expect.
If for instance you are using commons-fileupload the parameters would be present as and are identifiable using the 'isFormField' method on the FileItem object.
This thead on coderanch explains how: coderanch
Most (every) modern webframeworks abstract this away and make this sort of stuff much easier by the way. 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);
}
// ...
}
Upvotes: 2