⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uploadfilter.java

📁 struts框架的jsf组件的核心实用例子集合
💻 JAVA
字号:
package com.corejsf;import java.io.IOException;import java.util.Collections;import java.util.Enumeration;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import org.apache.commons.fileupload.DiskFileUpload;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUpload;import org.apache.commons.fileupload.FileUploadException;public class UploadFilter implements Filter {   private int sizeThreshold = -1;   private long sizeMax = -1;   private String repositoryPath;   public void init(FilterConfig config) throws ServletException {      repositoryPath = config.getInitParameter(         "com.corejsf.UploadFilter.repositoryPath");      try {         String paramValue = config.getInitParameter(            "com.corejsf.UploadFilter.sizeThreshold");         if (paramValue != null)             sizeThreshold = Integer.parseInt(paramValue);         paramValue = config.getInitParameter(            "com.corejsf.UploadFilter.sizeMax");         if (paramValue != null)             sizeMax = Long.parseLong(paramValue);      }      catch (NumberFormatException ex) {         ServletException servletEx = new ServletException();         servletEx.initCause(ex);         throw servletEx;      }   }   public void destroy() {   }   public void doFilter(ServletRequest request,       ServletResponse response, FilterChain chain)       throws IOException, ServletException {      if (!(request instanceof HttpServletRequest)) {         chain.doFilter(request, response);         return;      }      HttpServletRequest httpRequest = (HttpServletRequest) request;      boolean isMultipartContent = FileUpload.isMultipartContent(httpRequest);      if (!isMultipartContent) {         chain.doFilter(request, response);         return;      }      DiskFileUpload upload = new DiskFileUpload();      if (repositoryPath != null)          upload.setRepositoryPath(repositoryPath);            try {         List list = upload.parseRequest(httpRequest);         final Map map = new HashMap();         for (int i = 0; i < list.size(); i ++) {            FileItem item = (FileItem) list.get(i);            String str = item.getString();            if (item.isFormField())               map.put(item.getFieldName(), new String[] { str });            else               httpRequest.setAttribute(item.getFieldName(), item);         }                     chain.doFilter(new             HttpServletRequestWrapper(httpRequest) {               public Map getParameterMap() {                  return map;               }                                  // busywork follows ... should have been part of the wrapper               public String[] getParameterValues(String name) {                  Map map = getParameterMap();                  return (String[]) map.get(name);               }               public String getParameter(String name) {                  String[] params = getParameterValues(name);                  if (params == null) return null;                  return params[0];               }               public Enumeration getParameterNames() {                  Map map = getParameterMap();                  return Collections.enumeration(map.keySet());               }            }, response);      } catch (FileUploadException ex) {         ServletException servletEx = new ServletException();         servletEx.initCause(ex);         throw servletEx;      }         }   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -