Изображение ответа "текст" Кажется, просто!(Или должно быть) На основании пользовательских данных отправьте запрос Ajax и посмотрите, есть ли изображение для этого пользователя.Если есть, отправьте его обратно и загрузите на страницу.Я видел много кода для ajax или самого сервлета, но ничего вместе.
Вот мой вызов js ajax:
function getImage(page){
//var page = new Image();
$.ajax({
type:"post",
url:"GetImageServlet",
data: {
bookIDIn: currentBook.id,
userIDIn: currentBook.ownerID,
pageIn: page
},
async:true,
success:function(resp){
if(resp == "false"){
document.getElementById("serverErrorCode").innerHTML = "101_GETIMAGE_ERR";
showErrorModal();
} else {
//HOW TO TURN resp INTO AN IMAGE?
}
},
error:function(){
document.getElementById("serverErrorCode").innerHTML = "102_GETIMAGE_ERR";
showErrorModal();
}
});
}
Вотсервлет:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String ownerID = request.getParameter("userIDIn");
String bookID = request.getParameter("bookIDIn");
String page = request.getParameter("pageIn");
boolean resp = ownerID != null && bookID != null && page != null;
if(resp){
resp = !ownerID.isEmpty() && !bookID.isEmpty() && !page.isEmpty();
}
if(resp){
String root = baseRoot + ownerID + "\\" + bookID + "\\page\\p" + page + ".jpg";
System.out.println("root: " + root);
ServletContext cntx = request.getServletContext();
String mime = cntx.getMimeType(root);
if (mime == null) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
} else {
System.out.println("mime: " + mime);
}
response.setContentType(mime);
File file = new File(root);
response.setContentLength((int)file.length());
FileInputStream in = new FileInputStream(file);
OutputStream out = response.getOutputStream();
byte[] buf = new byte[1024];
int count = 0;
while ((count = in.read(buf)) >= 0) {
out.write(buf, 0, count);
}
out.close();
in.close();
} else {
response.getWriter().print(resp);
}
}
Этот сервлет работает в том, что он возвращает данные пользователю, просто не знаю точно, как превратить его в нужный мне элемент img.Не уверен, нужно ли менять сервлет или нет.Заранее спасибо.