/** 자바스크립트를 캐싱한다. \n 하는것 잊지말것 */ public static void writeScript(HttpServletResponse resp, File js, int second) { cacheForSeconds(resp, second, false); resp.setContentType("application/javascript; charset=" + CharSets.UTF_8); final PrintWriter out; try { out = resp.getWriter(); } catch (IOException e) { throw new RuntimeException(e); } for (File each : js.listFiles()) { String ext = Strings.getExtention(each.getName()); if (!ext.equals("js")) continue; new TextFileReader() .read( each, new StringCallback() { public void process(String line) { out.write(line + "\n"); } }); } }
/** 모바일 기기(안드로이드/아이폰 등)에서 온 요청인지? */ public static boolean isMobile(HttpServletRequest req) { String header = req.getHeader(USER_AGENT); return Strings.isMatchIgnoreCase(header, "Android", "AppleWebKit", "iPhon"); // return Strings.isMatch(header, "Android","AppleWebKit","iPhon"); }
/** 멀티파트 리퀘스트인지 검사 */ public static boolean isMultipartFormRequest(HttpServletRequest req) { return (Strings.nvl(req.getContentType()).toLowerCase().startsWith(CONTENT_TYPE_MULTIPART)) ? true : false; }
/** 루트의 WEB-INF 경로를 리턴한다. */ public static File getRoot(ServletContext context, String path) { String pathName = context.getRealPath(Strings.nvl(path, "/")); return new File(pathName); }
/** Url은 '/'를 포함하는 root부터 시작한다. ex) /D:/qwe.qwe.go => 'D:/qwe.qwe' and 'go' */ public static String[] getUrlAndExtention(HttpServletRequest req) { String requestedUrl = req.getRequestURI().substring(req.getContextPath().length()); return Strings.getUrlAndExtention(requestedUrl); }