Rev 1310 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.estgweb.web;
import org.apache.log4j.Logger;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.InputStream;
import jomm.dao.impl.AbstractDao;
import jomm.utils.StreamsUtils;
import jomm.utils.StringsUtils;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.domain.dao.impl.ImageDaoImpl;
import pt.estgp.estgweb.services.data.ImageManager;
import pt.estgp.estgweb.services.data.IRepositoryFile;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.*;
/**
* @author Fabio
* @date 4/Abr/2008
* @time 11:03:00
* @see pt.estgp.estgweb.web
*/
public class RepositoryStream
extends HttpServlet
{
private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger =
1.5.0/docs/api/java/util/logging/Logger.html">Logger.
getLogger(RepositoryStream.
class);
public void doGet
(HttpServletRequest request, HttpServletResponse response
)
throws ServletException,
1.5.0/docs/api/java/io/IOException.html">IOException
{
1.5.0/docs/api/java/lang/String.html">String objectRequired = request.
getPathInfo();
objectRequired = objectRequired.
substring(1
);
long id =
1.5.0/docs/api/java/lang/Long.html">Long.
parseLong(objectRequired.
trim());
IServiceManager sm =
null;
try
{
sm = ServiceManager.
getInstance();
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e,e
);
response.
sendError(500
);
return;
}
1.5.0/docs/api/java/lang/String.html">String[] names =
new 1.5.0/docs/api/java/lang/String.html">String[]{"identifier"};
5+0%2Fdocs%2Fapi+Object">Object[] args =
new 5+0%2Fdocs%2Fapi+Object">Object[]{""+ id
};
try
{
IRepositoryFile iRepositoryFile =
(IRepositoryFile
) sm.
execute(RequestUtils.
getRequester(request, response
),
"LoadRepositoryFile", args, names
);
if(iRepositoryFile ==
null)
{
response.
sendError(404
);
return;
}
response.
setContentLength(iRepositoryFile.
getSize());
response.
setContentType(iRepositoryFile.
getContentType());
response.
setHeader("Content-disposition",
"inline; filename=" + iRepositoryFile.
getName());
StreamsUtils.
inputStream2OutputStream(iRepositoryFile.
getInput(),response.
getOutputStream());
}
catch(FilterChainFailedException fail
)
{
response.
sendError(401
);
}
catch(1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e,e
);
response.
sendError(500
);
}
}
}