2013-11-14 3 views
0

Я работаю над проектом, на домашней странице проекта появится логотип всего приложения, которое я добавил, весь файл логотипа хранится в папке «c:/apps/myap».отображаемое изображение на jsp снаружи от webapps

Я использую Struts2 и спящий режим, если я использую процессор, который обрабатывает загрузку изображений, тогда мой проект будет очень медленным, я не хочу использовать какую-либо программу, чтобы просто отображать изображение логотипа на <img src='..' />.

Если я использую file.xml под Catalina/локальный

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/logo" docBase="c:/apps/myap/" /> 

ничего не происходит, я не могу видеть мой образ.

Я также добавил этот контекст к server.xml, который также не работает.

У любого есть идея, как это сделать простым способом, потому что я много искал и многого не нашел. Пожалуйста, дайте мне простой способ.

спасибо.

+0

Почему бы вам не поместить ваш url в тег 'img'? –

+0

Для этого, чтобы отображать изображение отлично, вы должны разрешить Struts обрабатывать статический контент. –

ответ

1

Укажите местоположение ваших изображений как, например. Init Param в web.xml:

<init-param> 
    <param-name>imageLocation</param-name> 
    <param-value>c:/apps/myap/</param-value> 
</init-param> 

Доступ к ним непосредственно из вашего сервлета.

EDIT: Изображения могут быть затем отправлены клиенту из сервлета с использованием ImageIO, при условии поддержки только JPEG. Вам нужно будет настроить другие типы изображений. Он не протестирован, но должен вас начать:

public void doGet(HttpServletRequest request, HttpServletResponse response) { 

    //What image is being requested? 
    String imageName = request.getPathInfo(); 

    // Open image File 
    File imageDirectory = new File(getServletContext().getInitParameter(“imageLocation”)); 
    File imageFile = new File(imageDirectory, imageName); 

    //Read image 
    BufferedImage image = ImageIO.read(new FileInputStream(imageFile)); 

    //Send image in response 
    ImageIO.write(image, "jpeg", response.getOutputStream()); 
} 
+0

сохранение вашего локального пути, подходит ли оно для веб-приложений? –

+1

Предполагая, что разрешения на файловую систему разрешают доступ к сервлет-контейнеру, да, это нормально. Это путь на сервере, а не клиент. – NickJ

+0

Вам нужно будет отправить изображения вручную таким образом. Я добавил информацию. – NickJ

Смежные вопросы