Example usage for org.springframework.web.context.support WebApplicationContextUtils getRequiredWebApplicationContext

List of usage examples for org.springframework.web.context.support WebApplicationContextUtils getRequiredWebApplicationContext

Introduction

In this page you can find the example usage for org.springframework.web.context.support WebApplicationContextUtils getRequiredWebApplicationContext.

Prototype

public static WebApplicationContext getRequiredWebApplicationContext(ServletContext sc)
        throws IllegalStateException 

Source Link

Document

Find the root WebApplicationContext for this web app, typically loaded via org.springframework.web.context.ContextLoaderListener .

Usage

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;
}