Я хочу загрузить zip-файл на страницу jsp ...
Используйте следующий тип формы:
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file">
<input type="submit">
</form>
... и пользователь отправляется на другую страницу jsp после выбора и загрузки файла.
Держись. Вы не должны использовать JSP для бизнес-логики. Необработанный код Java принадлежит не файлу JSP, а реальному классу Java. Пусть форма отправляется на Servlet
, который, в свою очередь, обрабатывает загрузку файла и, наконец, перенаправляет запрос на страницу JSP для отображения некоторого результата.
1) распакуйте загруженный zip-файл.
Используйте Apache Commons FileUpload для получения загруженного файла. Вы можете найти примеры кода, а также советы и рекомендации (!) В соответствующих разделах Руководство пользователя и Часто задаваемые вопросы на своей домашней странице.
В итоге вы должны получить InputStream
, содержащий загруженный файл.
После этого просто используйте API java.util.zip.ZipInputStream
для чтения загруженного файла.
2) прочитать часть содержимого из извлеченных файлов и позволить пользователю изменять / редактировать их
Получите данные в объектах модели (javabeans), сохраните их в области запроса или сеанса и используйте JSP / EL для отображения значений модели в полях ввода HTML. Э.Г.
<input type="text" name="foo" value="${fn:escapeXml(bean.foo)}">
JSTL fn:escapeXml
как раз для предотвращения XSS .
3) сохранить пользовательские изменения в файлах.
Пусть форма отправляется сервлету, собирает новый вход, записывает его в какой-то файл.
4) Снова заархивируйте файлы и сохраните их в другом месте.
Использование ZipOutputStream
.
См. Также