Сервлеты отвечают на различные HTTP-методы: GET, POST, PUT, HEAD.Поскольку вы используете GWT new Image(url)
, а он использует GET, вам нужен сервлет, который обрабатывает метод GET.
Чтобы сервлет мог обрабатывать метод GET, он должен переопределить метод doGet(..)
HttpServlet.
public class ImageServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
//your image servlet code here
resp.setContentType("image/jpeg");
// Set content size
File file = new File("path/to/image.jpg");
resp.setContentLength((int)file.length());
// Open the file and output streams
FileInputStream in = new FileInputStream(file);
OutputStream out = resp.getOutputStream();
// Copy the contents of the file to the output stream
byte[] buf = new byte[1024];
int count = 0;
while ((count = in.read(buf)) >= 0) {
out.write(buf, 0, count);
}
in.close();
out.close();
}
}
Затем необходимо настроить путь к сервлету в файле web.xml:
<servlet>
<servlet-name>MyImageServlet</servlet-name>
<servlet-class>com.yourpackage.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyImageServlet</servlet-name>
<url-pattern>/images</url-pattern>
</servlet-mapping>
Затем вызвать его в GWT: new Image("http:yourhost.com/images")