При использовании enctype="multipart/form-data"
вы не можете напрямую получить параметры с помощью request.getParameter("test_nme");
. В этом случае поля формы недоступны в качестве параметра запроса, они включены в поток, поэтому вы нужно достать их из потока. Возможный способ - использовать commons-fileupload . Вот пример кода из официальной документации (см. Раздел «Обработка загруженных элементов»)
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Configure a repository (to ensure a secure temp location is used)
ServletContext servletContext = this.getServletConfig().getServletContext();
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
factory.setRepository(repository);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List<FileItem> items = upload.parseRequest(request);
// Process the uploaded items
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
if (item.isFormField()) {
processFormField(item);
} else {
processUploadedFile(item);
}
}
Для обычного поля формы
// Process a regular form field if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
... }