Hi!
I have this servlet that is called from wicket only using a url
/Files/thefile.jpg
The servlet is url-mapped on /Files/*. But it is very slow and I was just
wondering could this be done in a better way
package se.edgesoft.hairless.web.resource;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.context.support.WebApplicationContextUtils;
import se.edgesoft.hairless.application.HairlessApplicationSettings;
/**
* Resource servlet for getting images and flash movies
* @author Mathias Nilsson
*
*/
public class FileResourceServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static ServletConfig config;
protected Object getBean(String name) {
Object obj =
WebApplicationContextUtils.getWebApplicationContext(config.getServletContext()).getBean(name);
return obj;
}
public void destroy() {
config = null;
}
public ServletConfig getServletConfig() {
return config;
}
public String getServletInfo() {
return "Resource servlet for Hairless";
}
public void init(ServletConfig servletConfig ) throws ServletException {
config = servletConfig;
}
public HairlessApplicationSettings getHairlessApplicationSettings(){
return (HairlessApplicationSettings)getBean(
"hairlessApplicationSettings" );
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
try {
File file = new File(
getHairlessApplicationSettings().getFileResourcePath() ,
request.getRequestURI().replace( request.getContextPath(), "" ) );
int length = 0;
ServletOutputStream op = response.getOutputStream();
ServletContext context =
getServletConfig().getServletContext();
String mimetype = context.getMimeType(
file.getAbsolutePath() );
response.setContentType( (mimetype != null) ? mimetype :
"application/octet-stream" );
response.setContentLength( (int)file.length() );
byte[] bbuf = new byte[1024];
DataInputStream in = new DataInputStream(new
FileInputStream(file));
while ((in != null) && ((length = in.read(bbuf)) != -1))
{
op.write(bbuf,0,length);
}
in.close();
op.flush();
op.close();
} catch (Exception e) {
}
}
}
--
View this message in context:
http://www.nabble.com/Resource-servlet-from-wicket-tp17574070p17574070.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]