#java #jsp #session #servlets #jakarta-ee
#java #jsp #сессия #сервлеты #джакарта-ee
Вопрос:
Я добавляю функции загрузки файлов в свое приложение. У меня проблема в том, что всякий раз, когда я использую enctype =»multipart / form-data» на своей странице jsp, сеанс становится нулевым. Это работает нормально, когда я удаляю указанный выше enctype, но загрузка файла больше не функционирует. Есть ли у вас какие-нибудь идеи, как решить эту проблему? Любое предложение будет высоко оценено. Большое спасибо.
Комментарии:
1. Можете ли вы вставить соответствующий код?
2. я устанавливаю атрибут сеанса в a.jsp и пытаюсь получить доступ к этому атрибуту в b.jsp, между этим я использую jupload.jar при отображении jupload я печатаю эти значения в.jsp, он работает нормально, когда я нажимаю загрузить, он перенаправляет на b.jsp, но здесь значения равны нулю.jsp код pg.session.setAttribute( «projId», projId ); в.jsp onclick <Имя параметра=»actionURL» значение =»/b.jsp»> этот оператор перенаправляет на b.jsp здесь String strCurUsrId = (Строка)pg.session. getAttribute(«projId»); но он возвращает null, можете ли вы разобраться в этом, пожалуйста
Ответ №1:
Из вашего описания кажется, что сеанс не равен нулю, но вы не получаете атрибуты из сеанса так, как раньше.
Попробуйте что-то вроде Apache Commons Fileupload, чтобы получить довольно простое решение.
Комментарии:
1. да, вы правы, атрибуты сеанса возвращают значение null. но при использовании Apache Commons Fileupload за один раз может быть загружен только один файл. у меня есть требование, чтобы одновременно загружалось несколько файлов.
2. AFAIK, Fileupload позволит вам загружать несколько файлов одновременно. Вам просто нужно было бы выполнить итерацию по
FileItem
s, возвращеннымServletFileUpload#parseRequest()
.3. но при просмотре файла правильный выбор нескольких файлов невозможен. на самом деле, ранее я использовал tomcat 5.0, jdk1.4, он работал нормально, но теперь я перешел на tomcat 7.0, jdk1.6. теперь атрибуты сеанса возвращают значение null.
4. Ну, выбор нескольких файлов невозможен ни в одном известном мне браузере, если вы не используете flash или тому подобное. Вы можете использовать несколько полей ввода, чтобы выбрать несколько файлов, а затем загрузить их с помощью одной отправки. Вы раньше использовали множественный выбор файлов? Если да, то каким образом?