GenericImageServlet.java
2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package fi.insomnia.bortal.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public abstract class GenericImageServlet extends HttpServlet {
/**
*
*/
protected enum ResponseType {
OK, FORBIDDEN, NOT_FOUND,
}
private static final long serialVersionUID = -2900241580433674121L;
protected class ImageMover
{
private Integer response;
private byte[] data;
private String imagetype;
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
public String getImagetype() {
return imagetype;
}
public void setImagetype(String imagetype) {
this.imagetype = imagetype;
}
public Integer getResponse() {
return response;
}
public void setResponse(Integer response) {
this.response = response;
}
}
/**
* @see HttpServlet#HttpServlet()
*/
public GenericImageServlet() {
super();
// TODO Auto-generated constructor stub
}
@SuppressWarnings("unused")
private static final Logger logger = LoggerFactory.getLogger(UserImageServlet.class);
protected abstract ImageMover getImagedata();
protected HttpServletRequest request;
protected Integer getIdParam(String name)
{
Integer ret = null;
String idStr = request.getParameter(name);
if (idStr != null)
{
ret = Integer.parseInt(idStr);
}
return ret;
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.request = request;
ImageMover data = getImagedata();
if (data == null || data.getData() == null || data.getResponse() != null) {
if (data != null && data.getData() != null) {
response.setStatus(data.getResponse());
} else {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
}
response.getWriter().append("Not Found");
} else {
response.setContentLength(data.getData().length);
if (request.getParameter("download") != null)
{
response.setContentType("application/x-unknown");
}
else {
response.setContentType(data.getImagetype());
}
response.getOutputStream().write(data.getData());
}
request = null;
}
}