Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как заставить сервлет отдавать картинки 
V
    Опции темы
stalk37
Дата 2.4.2009, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



   Здраствуйте. 
   Есть сервлет, который выдает HTML страницы. Страницы - физические файлы на сервере. 
Как пример
   
Код

    <p> Более 90 <img height="103" alt="" hspace="5" width="150" align="right" vspace="5" border="1" src="/pages/3440/ucheba3.jpg" />процентов выпускников получают работу по распределению. На некоторых специальностях бывает более 10 заявок на одного выпускника.
  </P>



 Проблема - изображения в теле страницы не подгружаются. 

 Пробывал перед выдачей парсить текст и менять пути 
  src="/pages/3440/ucheba3.jpg"
  на 
  src="ucheba3.jpg"    не помогает. 
  Пробывал менять на варианты типа    src="./pages/3440/ucheba3.jpg"   или  src="../pages/3440/ucheba3.jpg" тоже не работает. 

  Cами папки находятся  c:\project\website\build\web\pages\   дальще номер - имя папки, он же имя файла,  скажем для вышеприведенного примера весь путь будет  c:\project\website\build\web\pages\3440\3440.ascx , файлы с изображениями лежат в этой же папке. 

 Сервер  - гласфиш v2,   файл считывается в строку которая выдается как переменная шаблона velocity. 
   
PM MAIL   Вверх
LeNIC
Дата 2.4.2009, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.9.2008

Репутация: нет
Всего: нет



src="../../pages/3440/ucheba3.jpg" пробывал?
PM MAIL   Вверх
NeoNYura
Дата 2.4.2009, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 10.3.2008

Репутация: нет
Всего: нет



а у тебя картинка в *.war/


лежит?
PM MAIL   Вверх
stalk37
Дата 2.4.2009, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Цитата

src="../../pages/3440/ucheba3.jpg" пробывал


Пробывал, эффекта никакого

Цитата

а у тебя картинка в *.war/


лежит?


war архив не создаю 


PM MAIL   Вверх
garbuz
Дата 2.4.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Получите контекст приложения и от него уже пробуйте плясать.
PM MAIL   Вверх
Samotnik
Дата 2.4.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



stalk37, нужно писать относительный путь.  smile 
возьмите методом текущую директорию и через  ../ получите доступ к нужной
PM MAIL   Вверх
Asal
Дата 2.4.2009, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



1. Web.xml в студию
2. структура папок какая
3. какая папка диплоится на сервер

Это сообщение отредактировал(а) Asal - 2.4.2009, 15:57


--------------------
PM MAIL ICQ   Вверх
stalk37
Дата 3.4.2009, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



web-xml

Код

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <listener>
        <description>ServletContextListener</description>
        <listener-class>org.rinmach.EntrancePointListenner</listener-class>
    </listener>
    <servlet>
        <servlet-name>ControllerServlet</servlet-name>
        <servlet-class>org.rinmach.ControllerServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ControllerServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>ControllerServlet.java</welcome-file>
        </welcome-file-list>
    </web-app>



sun-web.xml

Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
<sun-web-app error-url="">
  <context-root>/WebPortal</context-root>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</sun-web-app>



структура папок 
 
       user posted image           

проект диплоиться в папку build, ее содержимое 

   user posted image






PM MAIL   Вверх
Asal
Дата 3.4.2009, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



web.xml 
исправить:
1. servlet-mapping - сейчас у вас этот контроллер обрабатывает все запросы, этого делать не надо,
некоторые ресурсы (картинки, css и т.д.) сервер порсто отдавать должен поэтому на до исправить
Код

<servlet-mapping>
        <servlet-name>ControllerServlet</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>


2.
<welcome-file-list>
        <welcome-file>index.html</welcome-file>
</welcome-file-list>

3. исправляем 1 и 2, запускаем сервер, деплоим, идем по аддресу
http://localhost:8080/WebPortal/pages/3440/ucheba3.jpg

4. если пофиксилось - говорим спасибо  smile , если нет - говорим что получилось  smile

Добавлено через 4 минуты и 57 секунд
4. template и config думаю надо перенести в WEB-INF (WEB-INF - "защищеная" папка, к ней доступа у user-a не будет),
сейчас к этим папкам есть доступ (http://localhost:8080/WebPortal/template/body.vm)

Добавлено через 8 минут и 8 секунд
Цитата(stalk37 @  3.4.2009,  07:50 Найти цитируемый пост)
проект диплоиться в папку build, ее содержимое 

проект собирается в папку build, а деплоится, вероятно, папка web
и деплоится она в папку "domains\domain1\applications\j2ee-apps" ну или что-то похожее


--------------------
PM MAIL ICQ   Вверх
stalk37
Дата 3.4.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



   
Цитата

  если пофиксилось - говорим спасибо   , если нет - говорим что получилось  


  Получилось HTTP Status 404 
  Где должен быть файл index.html ??? 
  
PM MAIL   Вверх
Asal
Дата 3.4.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



Цитата(stalk37 @  3.4.2009,  13:40 Найти цитируемый пост)
 Получилось HTTP Status 404 

а что с http://localhost:8080/WebPortal/pages/3440/ucheba3.jpg ???
Цитата(stalk37 @  3.4.2009,  13:40 Найти цитируемый пост)
Где должен быть файл index.html ??? 

в корне - web/index.html


--------------------
PM MAIL ICQ   Вверх
stalk37
Дата 3.4.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2008

Репутация: нет
Всего: нет







   А за это спасибо, это пашет, как быть чтоб теперь все остальное работало ??? 
PM MAIL   Вверх
stalk37
Дата 3.4.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Как я понимаю вот здесь
 
Цитата


  <servlet-mapping>
        <servlet-name>ControllerServlet</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>


 указали чтоб сервлет обрабытывал все файлы с расширением html, как указать чтоб сервлет обрабатывал все, кроме css, js, картинок и т.п.


Вот нашел описание двух вариантов (в теме  JSP — с чего начать?)

 
Цитата

   Один из выходов - в web.xml явно замапить картинки, css, js и пр. статические ресурсы на дефолтный контроллер, например, по расширениям.

Другой выход - забить вообще на встроенные средства и отдавать всю статику самому. Правда, для этого придется конфигурировать content-type. Зато появляются плюсы, такие как возможность при желании логировать, в рамках единого подхода, запросы к статике, тонко управлять кэшированием на клиенте, гзиповать вывод, и пр.


Но буквы вижу а смысл не доходит, кто нибудь может кинуть пирмером кода ?   smile 

  

Это сообщение отредактировал(а) stalk37 - 3.4.2009, 14:45
PM MAIL   Вверх
Asal
Дата 3.4.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



Цитата(stalk37 @  3.4.2009,  14:18 Найти цитируемый пост)
указали чтоб сервлет обрабытывал все файлы с расширением html

не файлы, а запросы!
можно замэпить ./bla-bla.hu
Код

<servlet-mapping>
        <servlet-name>ControllerServlet</servlet-name>
        <url-pattern>*.hu</url-pattern>
    </servlet-mapping>

Цитата(stalk37 @  3.4.2009,  14:18 Найти цитируемый пост)
как указать чтоб сервлет обрабатывал все, кроме css, js, картинок и т.п.

не надо так делать, надо сделать так чтобы сервлет обрабатывал что-то одно
например, как написано в моем прошлом посте.
тогда все что
http://localhost:8080/WebPortal/названиеСтраницы.html
будет обрабатывать сервлет, а содержимое вроде картинок и css будет просто браться из папки.
Ведь обращение по http://localhost:8080/WebPortal/my.jpg равносильно просбе вернуть картинку из папки
web/my.jpg


--------------------
PM MAIL ICQ   Вверх
stalk37
Дата 6.4.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



  Спасибо, разобрался 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.