Я работаю над приложением, в котором информация о пользователях добавляется и модифицируется (обновляется).
В добавить модуль , администратор вводит данные пользователя и уникальный идентификатор (abc001) генерируется при нажатии кнопки «Добавить».и администратор также сохраняет изображение / изображение (имя: abc001) пользователя в расположении сервера (// адрес некоторого местоположения-ip / диск / образы D).
В Модуль «Обновление» , администратор может изменять данные пользователя, но не может изменять идентификатор.
Мне нужно какое-то направление в нескольких сценариях.
Если администратор «обновляет» конкретного пользователя, изображение этого пользователя, присутствующего на сервере, должно отображаться на странице, как только администратор нажимает кнопку обновления.
Код изображения в JSP:
<img height="100px;" width="100px;" src="........." alt="Candidate Image"></img>
Я написал сервлет, но не знаю, как вызывать разные изображения, соответствующие разным пользователям, и отображать изображение на странице профиля.
пользователь В профиле пользователя будет отображаться пользователь A В профиле пользователя B будет отображаться изображение пользователя B и т. Д.
Код сервлета Фрагмент
public class UpDatePhoto extends HttpServlet {
public UpDatePhoto () {
super();
// TODO Auto-generated constructor stub
}
private static final long serialVersionUID = -8071854868821235857L;
private static final int DEFAULT_BUFFER_SIZE = 10240; // 10KB.
private String imagePath;
*public void init() throws ServletException {
this.imagePath = "D:\\photo_not_available_large.png";
}*
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String requestedImage = request.getPathInfo();
if (requestedImage == null) {
response.sendError(HttpServletResponse.SC_NOT_FOUND); // 404.
return;
}
File image = new File(imagePath, URLDecoder.decode(requestedImage, "UTF-8"));
String contentType = getServletContext().getMimeType(image.getName());
if (contentType == null || !contentType.startsWith("image")) {
response.sendError(HttpServletResponse.SC_NOT_FOUND); // 404.
return;
}
response.reset();
response.setBufferSize(DEFAULT_BUFFER_SIZE);
response.setContentType(contentType);
response.setHeader("Content-Length", String.valueOf(image.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + image.getName() + "\"");
BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
input = new BufferedInputStream(new FileInputStream(image), DEFAULT_BUFFER_SIZE);
output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
} finally {
close(output);
close(input);
}
}
private static void close(Closeable resource) {
if (resource != null) {
try {
resource.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Изображение недоступно по http, но доступнодоступен только в виде файла, сервлет должен был бы открыть файл изображения, прочитать содержимое и поместить их в буфер ответов ".... не уверен, что я прав.
Может ли кто-нибудь направить меняв направлении и помочь мне, как получить изображение из каталога на сервере и отобразить правильное изображение для пользователя.