Сообщение от kliver
|
Вот обратно возвращаюсь на страницу после работы сервлета.
|
Вот чтобы не заморачиваться по поводу возврата на исходную страницу в вашем случае можно использовать iframe в качестве ajax-транспорта (читать
здесь) или же HTML5 FileApi если поддержка старых браузеров для вас не играет большой роли. Рекомендую почитать:
http://www.html5rocks.com/ru/tutorials/file/xhr2/
http://javascript.ru/node/7686
Но это только то что касается клиентской части, если говорить о серверной стороне, то сервлет должен отдавать в поток лишь информацию о том удалось ли загрузить файл или нет. Суть примерно такова:
...
// например переопределяем метод service (можно также doPost и/или doGet)
public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
PrintWriter pwt = res.getWriter();
try {
// сначала надо проверить является ли запрос req multipart/form-data
boolean isMt = ServletFileUpload.isMultipartContent(req);
if ( !isMt ) {
res.sendError(HttpServletResponse.SC_BAD_REQUEST);
return;
}
...
/**
* Здесь читаем файл (данные о файле) и создаем новый объект.
* Точно не скажу какие пакеты понадобятся для этого, знаю что у апача есть org.apache.commons.fileupload
*/
...
pwt.println("{\"success\":true}"); // наличие в ответе параметра success позволит определить (на клиенте) удалось ли загрузить файл
} catch(Exception e) {
e.printStackTrace();
} finally {
pwt.close();
}
}
...
Томкат сейчас у себя нет возможности поднять, поэтому в коде возможны ошибки (не проверял), но двигаться вам нужно в этом направлении.