package com.fr.plugin.external.web; import com.fr.plugin.external.ImageManager; import com.fr.stable.StringUtils; import com.fr.stable.fun.RequestInterceptor; import com.fr.stable.fun.Service; import com.fr.stable.web.ServletContext; import com.fr.stable.web.ServletContextAdapter; import com.fr.web.core.WebActionsDispatcher; import com.fr.web.utils.WebUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ImageViewService implements Service{ static { ServletContext.addServletContextListener(new ServletContextAdapter() { @Override public void onServletStop() { ImageManager.getInstance().release(); } }); } public ImageViewService() { ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.execute(new Runnable() { @Override public void run() { // 预初始化 ImageManager.getInstance(); } }); } private RequestInterceptor[] actions = { new ShowImageAction(), new GetAllImageInfoAction(), new DownloadImageAction(), new DeleteImageAction(), new UpdateImageAction() }; @Override public String actionOP() { return "im"; } @Override public void process(HttpServletRequest req, HttpServletResponse res, String op, String sessionID) throws Exception { // if (isAdmin(req)) { // WebUtils.printAsString(res, "Please log on as an admin, and then try again."); // return; // } String cmd = WebUtils.getHTTPRequestParameter(req, "cmd"); if (StringUtils.isEmpty(cmd)) { String errorTemplate = "/com/fr/plugin/external/web/ui/im/manager.html"; WebUtils.writeOutTemplate(errorTemplate, res, new HashMap()); } else { WebActionsDispatcher.dealForActionCMD(req, res, sessionID, actions); } } }