List of usage examples for org.springframework.web.context.support WebApplicationContextUtils getRequiredWebApplicationContext
public static WebApplicationContext getRequiredWebApplicationContext(ServletContext sc) throws IllegalStateException
From source file:org.codelabor.system.file.web.servlet.FileUploadServlet.java
/** * ? .</br>? ?? ? Id ? fileID ?? DTO * org.codelabor.system.file.FileConstants.FILE_KEY? attribute? ??. * //from w w w .j a v a2 s.co m * @param request * * @param response * ? * @throws Exception * */ protected void read(HttpServletRequest request, HttpServletResponse response) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(this.getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); String fileId = request.getParameter("fileId"); FileDTO fileDTO = fileManager.selectFileByFileId(fileId); request.setAttribute(org.codelabor.system.file.FileConstants.FILE_KEY, fileDTO); dispatch(request, response, forwardPathRead); }
From source file:org.codelabor.system.file.web.servlet.FileUploadServlet.java
/** * ?? ./* w w w . j ava 2 s . co m*/ * * @param request * * @param response * ? * @throws Exception * */ protected void download(HttpServletRequest request, HttpServletResponse response) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(this.getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); Map<String, Object> paramMap = RequestUtils.getParameterMap(request); logger.debug("paramMap: {}", paramMap.toString()); String fileId = (String) paramMap.get("fileId"); StringBuilder sb = new StringBuilder(); FileDTO fileDTO; fileDTO = fileManager.selectFileByFileId(fileId); logger.debug("fileDTO: {}", fileDTO); String repositoryPath = fileDTO.getRepositoryPath(); String uniqueFilename = fileDTO.getUniqueFilename(); String realFilename = fileDTO.getRealFilename(); InputStream inputStream = null; if (StringUtils.isNotEmpty(repositoryPath)) { // FILE_SYSTEM sb.setLength(0); sb.append(repositoryPath); if (!repositoryPath.endsWith(File.separator)) { sb.append(File.separator); } sb.append(uniqueFilename); File file = new File(sb.toString()); inputStream = new FileInputStream(file); } else { // DATABASE byte[] bytes = new byte[] {}; if (fileDTO.getFileSize() > 0) { bytes = fileDTO.getBytes(); } inputStream = new ByteArrayInputStream(bytes); } // set response contenttype, header String encodedRealFilename = URLEncoder.encode(realFilename, "UTF-8"); logger.debug("realFilename: {}", realFilename); logger.debug("encodedRealFilename: {}", encodedRealFilename); response.setContentType(org.codelabor.system.file.FileConstants.CONTENT_TYPE); sb.setLength(0); if (request.getHeader(HttpRequestHeaderConstants.USER_AGENT).indexOf("MSIE5.5") > -1) { sb.append("filename="); } else { sb.append("attachment; filename="); } sb.append(encodedRealFilename); response.setHeader(HttpResponseHeaderConstants.CONTENT_DISPOSITION, sb.toString()); logger.debug("header: {}", sb.toString()); logger.debug("character encoding: {}", response.getCharacterEncoding()); logger.debug("content type: {}", response.getContentType()); logger.debug("bufferSize: {}", response.getBufferSize()); logger.debug("locale: {}", response.getLocale()); BufferedInputStream bufferdInputStream = new BufferedInputStream(inputStream); ServletOutputStream servletOutputStream = response.getOutputStream(); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(servletOutputStream); int bytesRead; byte buffer[] = new byte[2048]; while ((bytesRead = bufferdInputStream.read(buffer)) != -1) { bufferedOutputStream.write(buffer, 0, bytesRead); } // flush stream bufferedOutputStream.flush(); // close stream inputStream.close(); bufferdInputStream.close(); servletOutputStream.close(); bufferedOutputStream.close(); }
From source file:org.codelabor.system.file.web.servlet.FileUploadStreamServlet.java
@Override protected void upload(HttpServletRequest request, HttpServletResponse response) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(this.getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); boolean isMultipart = ServletFileUpload.isMultipartContent(request); Map<String, Object> paramMap = RequestUtils.getParameterMap(request); if (logger.isDebugEnabled()) { logger.debug(paramMap.toString()); }//from www. java2 s.co m String mapId = (String) paramMap.get("mapId"); RepositoryType acceptedRepositoryType = repositoryType; String requestedRepositoryType = (String) paramMap.get("repositoryType"); if (StringUtils.isNotEmpty(requestedRepositoryType)) { acceptedRepositoryType = RepositoryType.valueOf(requestedRepositoryType); } if (isMultipart) { ServletFileUpload upload = new ServletFileUpload(); upload.setFileSizeMax(fileSizeMax); upload.setSizeMax(requestSizeMax); upload.setHeaderEncoding(characterEncoding); upload.setProgressListener(new FileUploadProgressListener()); try { FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream fileItemSteam = iter.next(); if (logger.isDebugEnabled()) { logger.debug(fileItemSteam.toString()); } FileDTO fileDTO = null; if (fileItemSteam.isFormField()) { paramMap.put(fileItemSteam.getFieldName(), Streams.asString(fileItemSteam.openStream(), characterEncoding)); } else { if (fileItemSteam.getName() == null || fileItemSteam.getName().length() == 0) continue; // set DTO fileDTO = new FileDTO(); fileDTO.setMapId(mapId); fileDTO.setRealFilename(FilenameUtils.getName(fileItemSteam.getName())); if (acceptedRepositoryType == RepositoryType.FILE_SYSTEM) { fileDTO.setUniqueFilename(getUniqueFilename()); } fileDTO.setContentType(fileItemSteam.getContentType()); fileDTO.setRepositoryPath(realRepositoryPath); if (logger.isDebugEnabled()) { logger.debug(fileDTO.toString()); } UploadUtils.processFile(acceptedRepositoryType, fileItemSteam.openStream(), fileDTO); } if (fileDTO != null) fileManager.insertFile(fileDTO); } } catch (FileUploadException e) { e.printStackTrace(); logger.error(e.getMessage()); } catch (Exception e) { e.printStackTrace(); logger.error(e.getMessage()); } } else { paramMap = RequestUtils.getParameterMap(request); } try { processParameters(paramMap); } catch (Exception e) { e.printStackTrace(); logger.error(e.getMessage()); } dispatch(request, response, forwardPathUpload); }
From source file:org.codelabor.system.file.web.struts.action.FileDownloadAction.java
@Override protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Map<String, Object> paramMap = RequestUtils.getParameterMap(request); logger.debug(paramMap.toString());//from w ww . j a v a 2 s . c o m String fileId = (String) paramMap.get("fileId"); StreamInfo streamInfo = null; WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(servlet.getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); FileDTO fileDTO = fileManager.selectFileByFileId(fileId); logger.debug("fileDTO: {}", fileDTO); String repositoryPath = fileDTO.getRepositoryPath(); String uniqueFilename = fileDTO.getUniqueFilename(); String realFilename = fileDTO.getRealFilename(); StringBuilder sb = new StringBuilder(); // FILE_SYSTEM if (StringUtils.isNotEmpty(repositoryPath)) { sb.append(repositoryPath); if (!repositoryPath.endsWith(File.separator)) { sb.append(File.separator); } sb.append(uniqueFilename); File file = new File(sb.toString()); streamInfo = new FileStreamInfo(org.codelabor.system.file.FileConstants.CONTENT_TYPE, file); // DATABASE } else { byte[] bytes = fileDTO.getBytes(); streamInfo = new ByteArrayStreamInfo(org.codelabor.system.file.FileConstants.CONTENT_TYPE, bytes); } // set response contenttype, header String encodedRealFilename = URLEncoder.encode(realFilename, "UTF-8"); logger.debug("realFilename: {}", realFilename); logger.debug("encodedRealFilename: {}", encodedRealFilename); response.setContentType(org.codelabor.system.file.FileConstants.CONTENT_TYPE); sb.setLength(0); if (request.getHeader(HttpRequestHeaderConstants.USER_AGENT).indexOf("MSIE5.5") > -1) { sb.append("filename="); } else { sb.append("attachment; filename="); } // stringBuilder.append("\""); sb.append(encodedRealFilename); // stringBuilder.append("\""); response.setHeader(HttpResponseHeaderConstants.CONTENT_DISPOSITION, sb.toString()); logger.debug("header: {}", sb.toString()); logger.debug("character encoding: {}", response.getCharacterEncoding()); logger.debug("content type: {}", response.getContentType()); logger.debug("bufferSize: {}", response.getBufferSize()); logger.debug("locale: {}", response.getLocale()); return streamInfo; }
From source file:org.codelabor.system.file.web.struts.action.FileUploadAction.java
/** * ? ?? .</br>? ??/*w ww. j a va2 s . c om*/ * org.codelabor.system.file.FileConstants.FILE_LIST_KEY? attribute? * ??. Map Id? ? Map Id * org.codelabor.system.file.FileConstants.MAP_ID? attribute? ??. * * @param mapping * * @param form * ? * @param request * * @param response * ? * @return ? * @throws Exception * */ public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); IdGenService mapIdGenService = (IdGenService) ctx.getBean("sequenceMapIdGenService"); Map<String, Object> paramMap = RequestUtils.getParameterMap(request); logger.debug("paramMap: {}", paramMap.toString()); String mapId = (String) paramMap.get("mapId"); String repositoryType = (String) paramMap.get("repositoryType"); List<FileDTO> fileDTOList = null; if (StringUtils.isEmpty(repositoryType)) { if (StringUtils.isEmpty(mapId)) { fileDTOList = fileManager.selectFileAll(); } else { fileDTOList = fileManager.selectFileByMapId(mapId); } } else { switch (RepositoryType.valueOf(repositoryType)) { case DATABASE: fileDTOList = fileManager.selectFileByRepositoryType(RepositoryType.DATABASE); break; case FILE_SYSTEM: fileDTOList = fileManager.selectFileByRepositoryType(RepositoryType.FILE_SYSTEM); break; default: logger.error("Invalid repository type: {}", repositoryType); throw new InvalidRepositoryTypeException(repositoryType); } } request.setAttribute(FileConstants.MAP_ID, mapIdGenService.getNextStringId()); request.setAttribute(FileConstants.FILE_LIST_KEY, fileDTOList); return mapping.findForward("list"); }
From source file:org.codelabor.system.file.web.struts.action.FileUploadAction.java
/** * ? .</br>? ?? ? Id ? fileID ?? DTO * org.codelabor.system.file.FileConstants.FILE_KEY? attribute? ??. * /*from ww w . j av a2 s .c o m*/ * @param mapping * * @param form * ? * @param request * * @param response * ? * @return ? * @throws Exception * */ public ActionForward read(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); String fileId = request.getParameter("fileId"); FileDTO fileDTO = fileManager.selectFileByFileId(fileId); request.setAttribute(FileConstants.FILE_KEY, fileDTO); return mapping.findForward("read"); }
From source file:org.codelabor.system.file.web.struts.action.FileUploadAction.java
/** * ?? .</br> ? ? ?? ? , (: ?) ? mapId . ? * ?? ? repositoryType , ?// w w w .j a v a 2s . co m * org.codelabor.system.file.RepositoryType . * * @param mapping * * @param form * ? * @param request * * @param response * ? * @return ? * @throws Exception * */ public ActionForward upload(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); PropertiesService propertiesService = (PropertiesService) ctx.getBean("propertiesService"); // get parameter String repositoryType = request.getParameter("repositoryType"); if (repositoryType == null) { repositoryType = propertiesService.getString("file.default.real.repository.type", "FILE_SYSTEM"); } RepositoryType.valueOf(repositoryType); logger.debug("repositoryType: {}", repositoryType); // get form FileUploadForm uploadForm = (FileUploadForm) form; List<FormFile> formFileList = uploadForm.getFormFileList(); String mapId = uploadForm.getMapId(); logger.debug("formFileList: {}", formFileList); logger.debug("mapId: {}", mapId); // upload List<FileDTO> fileDTOList = this.saveFile(RepositoryType.valueOf(repositoryType), mapId, formFileList); // invoke manager int affectedRowCount = fileManager.insertFile(fileDTOList); request.setAttribute(AFFECTED_ROW_COUNT, affectedRowCount); // forward return mapping.findForward("upload"); }
From source file:org.codelabor.system.file.web.struts.action.FileUploadAction.java
/** * ?? .//from www . j a va2s. c o m * * @param repositoryType * ? ? * @param mapId * Map Id * @param formFile * ? ? * @return ? DTO * @throws Exception * */ protected FileDTO saveFile(RepositoryType repositoryType, String mapId, FormFile formFile) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); PropertiesService propertiesService = (PropertiesService) ctx.getBean("propertiesService"); IdGenService uniqueFilenameGenerationService = (IdGenService) ctx .getBean("uniqueFilenameGenerationService"); // set file properties String realFilename = formFile.getFileName(); int fileSize = formFile.getFileSize(); String contentType = formFile.getContentType(); InputStream inputStream = formFile.getInputStream(); String uniqueFilename = uniqueFilenameGenerationService.getNextStringId(); // set configuration String repositoryPath = propertiesService.getString("file.default.real.repository.path", System.getProperty("user.dir")); // set dto FileDTO fileDTO = new FileDTO(); fileDTO.setMapId(mapId); fileDTO.setRealFilename(realFilename); fileDTO.setUniqueFilename(uniqueFilename); fileDTO.setFileSize(fileSize); fileDTO.setContentType(contentType); fileDTO.setRepositoryPath(repositoryPath); logger.debug(fileDTO.toString()); UploadUtils.processFile(repositoryType, inputStream, fileDTO); return fileDTO; }
From source file:org.codelabor.system.file.web.struts.action.FileUploadAction.java
/** * ?? .</br> ?? ? Id ? fileId . * org.codelabor.system.daos.AFFECTED_ROW_COUNT? attribute? ??. * /*from w w w . j ava 2 s . com*/ * @param mapping * * @param form * ? * @param request * * @param args * ? * @return ? * @throws Exception * */ public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse args) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); int affectedRowCount = 0; if (form != null) { FileUploadForm uploadForm = (FileUploadForm) form; String[] fileIdList = uploadForm.getFileId(); affectedRowCount = fileManager.deleteFileByFileId(fileIdList); request.setAttribute(AFFECTED_ROW_COUNT, affectedRowCount); } return mapping.findForward("delete"); }
From source file:org.codelabor.system.file.web.struts.action.FileUploadAction.java
public ActionForward view(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); Map<String, Object> paramMap = RequestUtils.getParameterMap(request); logger.debug("paramMap: {}", paramMap.toString()); String fileId = (String) paramMap.get("fileId"); StringBuilder sb = new StringBuilder(); FileDTO fileDTO;/*from ww w. j av a 2s. co m*/ fileDTO = fileManager.selectFileByFileId(fileId); logger.debug("fileDTO: {}", fileDTO); String repositoryPath = fileDTO.getRepositoryPath(); String uniqueFilename = fileDTO.getUniqueFilename(); String realFilename = fileDTO.getRealFilename(); InputStream inputStream = null; if (StringUtils.isNotEmpty(repositoryPath)) { // FILE_SYSTEM sb.setLength(0); sb.append(repositoryPath); if (!repositoryPath.endsWith(File.separator)) { sb.append(File.separator); } sb.append(uniqueFilename); File file = new File(sb.toString()); inputStream = new FileInputStream(file); } else { // DATABASE byte[] bytes = new byte[] {}; if (fileDTO.getFileSize() > 0) { bytes = fileDTO.getBytes(); } inputStream = new ByteArrayInputStream(bytes); } response.setContentType(fileDTO.getContentType()); // set response contenttype, header String encodedRealFilename = URLEncoder.encode(realFilename, "UTF-8"); logger.debug("realFilename: {}", realFilename); logger.debug("encodedRealFilename: {}", encodedRealFilename); logger.debug("character encoding: {}", response.getCharacterEncoding()); logger.debug("content type: {}", response.getContentType()); logger.debug("bufferSize: {}", response.getBufferSize()); logger.debug("locale: {}", response.getLocale()); BufferedInputStream bufferdInputStream = new BufferedInputStream(inputStream); ServletOutputStream servletOutputStream = response.getOutputStream(); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(servletOutputStream); int bytesRead; byte buffer[] = new byte[2048]; while ((bytesRead = bufferdInputStream.read(buffer)) != -1) { bufferedOutputStream.write(buffer, 0, bytesRead); } // flush stream bufferedOutputStream.flush(); // close stream inputStream.close(); bufferdInputStream.close(); servletOutputStream.close(); bufferedOutputStream.close(); return null; }