📄 graphicsservlet.java
字号:
package com.esri.solutions.jitk.web.tasks.redlining.graphics;
import javax.faces.FactoryFinder;
import javax.faces.context.FacesContext;
import javax.faces.context.FacesContextFactory;
import javax.faces.lifecycle.LifecycleFactory;
import javax.faces.lifecycle.Lifecycle;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletOutputStream;
import java.text.DateFormat;
import java.util.Date;
import java.io.FileOutputStream;
import java.io.File;
/**
* This servlet returns requested uploaded graphics.
*/
public class GraphicsServlet extends HttpServlet{
private static final long serialVersionUID = 9208915312769835525L;
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
@SuppressWarnings("unchecked")
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException{
try{
String id = request.getParameter("id");
String filename = request.getParameter("filename");
String fullpath = request.getParameter("fullpath");
String fid = request.getParameter("fid");
String mode = request.getParameter("mode");
FacesContext facesContext = FacesContext.getCurrentInstance();
if (facesContext == null){
FacesContextFactory contextFactory = (FacesContextFactory)FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
LifecycleFactory lifecycleFactory = (LifecycleFactory)FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
Lifecycle lifecycle = lifecycleFactory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
facesContext = contextFactory.getFacesContext(request.getSession().getServletContext(), request, response, lifecycle);
}
byte[] data = null;
if (id != null) {
data = (byte[])facesContext.getExternalContext().getSessionMap().get(id);
}
if (filename != null){
String fileId = id + "_" + filename;
if (filename.toUpperCase().endsWith(".ICO")) {
String dstr = DateFormat.getDateTimeInstance().format(new Date());
String pngfilename = dstr.replaceAll(" ", "_");
pngfilename = "jitk_" + id + "_" + pngfilename.replaceAll(":", "_") + ".ico";
FileOutputStream fos = new FileOutputStream(pngfilename);
fos.write(data, 0, data.length);
fos.close();
data = GraphicsRedliningTaskUtil.getBytesFromFile(pngfilename, fid);
facesContext.getExternalContext().getSessionMap().put(fileId, data);
File pngfile = new File(pngfilename);
pngfile.delete();
}
else {
facesContext.getExternalContext().getSessionMap().put(fileId, data);
}
}
if (mode != null && mode.equalsIgnoreCase("checksize")) {
String heightParam = (String)facesContext.getExternalContext().getSessionMap().get("jitkGraphicsHeightParam");
String widthParam = (String)facesContext.getExternalContext().getSessionMap().get("jitkGraphicsWidthParam");
String sizeParam = (String)facesContext.getExternalContext().getSessionMap().get("jitkGraphicsSizeParam");
String msg = GraphicsRedliningTaskUtil.checkSize(data, Integer.parseInt(widthParam), Integer.parseInt(heightParam), Integer.parseInt(sizeParam));
ServletOutputStream out = response.getOutputStream();
out.write(msg.getBytes());
out.flush();
out.close();
return;
}
if (fullpath != null){
data = GraphicsRedliningTaskUtil.getBytesFromFile(fullpath, fid);
}
// response.setContentType(CONTENT_TYPE);
ServletOutputStream out = response.getOutputStream();
out.write(data);
out.flush();
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -