Вставить изображение на страницу jsp

мне жаль, что мне нужно спросить об этом, но я уже потратил три дня, пытаясь это сделать. Я buidling Java веб-приложение, и я хочу включить изображение на страницу JSP. Имя проекта-realestates, и у меня есть папка Files внутри папки realestates.

мой код выглядит так:

<img alt="govno" src="<%=request.getContextPath() + "/Files/kurac.jpg"%>" style="width: 400px; height: 300px;">

Это то, что генерируется на странице после ее открытия в браузере:

<img alt="govno" src="/realestates/Files/kurac.jpg" style="width: 400px; height: 300px;">

но, изображение не dispayed, только alt "govno" написано. Я перепробовал много, много путей. (относительная, абсолютная, измененная структура папок миллион раз и все, что я мог придумать и найти в интернете, но ничего не помогло). Кто сказал бы, что это будет так трудно сделать???

структура папок на сервере Tomcat после развертывания:

webapps
 - realestates
   |- WEB-INF
   |- Files
     |- kurac.jpg

4 ответов


вот парень, объясняющий это менее чем за минуту.

https://www.youtube.com/watch?v=dwjwSYOrnS8

поэтому требуются две вещи:

1.Добавьте эту строку в некоторый конфигурационный xml-файл

<mvc:resources location="/files/" mapping="/files/**"></mvc:resources>

2.Включите изображение в страницу JSP с этой строкой

 <img src='<c:url value="/files/korali.jpg"></c:url>' />    

Я прочитал Ваш вопрос, и у меня есть одно решение для вашей проблемы, вы можете использовать входной поток для добавления изображения на странице JSP...

ЭТО ПРОСТО ПРИМЕР...И МОЖЕТ ИМЕТЬ ОШИБКУ, НО ЭТО СПОСОБ ВСТАВКИ ИЗОБРАЖЕНИЯ В JSP...

Class.forName("com.mysql.jdbc.Driver").newInstance();  
Connection connection = 
    DriverManager.getConnection(connectionURL, "user", "pass");  

psmnt = connection.prepareStatement(
    "insert into save_image(user, image) values(?,?)");  
psmnt.setString(1, username);  

ImageIO.write(image, "png", new File("C://image.png")); 
File imageFile = new File("C://image.png");
FileInputStream fis = new FileInputStream(imageFile);

psmnt.setBinaryStream(2, (InputStream)fis, (fis.length()));
int s = psmnt.executeUpdate();

Похоже, вы сами (и все остальные) путаете, где находится изображение. Из вашего вопроса, кажется, в webapps/realestates/Files/kurac.jpg, Так что это должно работать:

<img src="/realestates/Files/kurac.jpg">

из вашего первого комментария, это в C:/Users/Lazar/Documents/workspace-sts-3.8.3.RELEASE/realestates/Files/kurac.jpg, поэтому он не будет доступен через http://. Это не сработает.

из вашего более позднего комментария, это в /webapp/realestates/WEB-INF/Files/kurac.jpg. Файлы внутри WEB-INF не являются общедоступными. Это тоже не сработает.

в крайнем случае переместите файл изображения в webapps/ROOT справочник. Попробуй!--7--> из Вашего браузера. Заменить localhost С hostname сервера по мере необходимости. Если это работает, это будет работать так:

<img src="/kurac.jpg">

если это не так, что-то не так с вашей конфигурацией Tomcat. Попробуйте переустановить.


сначала вы должны создать папку изображений вне WEB-INF каталог и попробуйте этот код <img src="${pageContext.request.contextPath}/Files/kurac.jpg"/>