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

📄 ecsidefilter.java

📁 ecside jsp前途分页的标签 实现ajax 增删改查等
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				}
				chain.doFilter(request, bufferResponseWrapper);
				String zone = bufferResponseWrapper.findSubstring(
						ECSideUtils.getAjaxBegin(ectableId), ECSideUtils.getAjaxEnd(ectableId));
				HttpServletResponse originalResponse = bufferResponseWrapper.getOriginalResponse();
				if (zone!=null){
					originalResponse.getOutputStream().write(zone.getBytes("UTF-8"));
				}
//				originalResponse.flushBuffer();
				originalResponse.getOutputStream().flush();
				originalResponse.getOutputStream().close();
			} catch (Exception e) {
				LogHandler.errorLog(logger, e);
				response.setContentType("text/html;charset=UTF-8");
				response.getWriter().println("Exception:<br />\n"+ExceptionUtils.formatStackTrace(e).replaceAll("\n","<br/>\n"));
				response.getWriter().close();
				
			}
		} else {
			if (easyListName!=null){
				easyDataAccessHandler.easyList(request,response,getEasyListModelBean(request,easyListName));
			}else if (easyDataAccessName!=null){
				String sqlName=getSqlName(request);
				easyDataAccessHandler.dataAccess(getDataAccessModelBean(request,easyDataAccessName), sqlName, request, response);
			}
			chain.doFilter(request, response);
		}
    }
    
    public void doExportFilter(HttpServletRequest request,HttpServletResponse response,FilterChain chain,WebContext context)throws IOException, ServletException{
    	String easyListName=getEasyList(request);
    	String exportFileName = ExportFilterUtils.getExportFileName(context);
		boolean isPrint="_print_".equals(exportFileName);

		try{
				if (isPrint){
					if (easyListName!=null){
						easyDataAccessHandler.easyList(request,response,getEasyListModelBean(request,easyListName));
					}
					chain.doFilter(request, response);
				}else {
					request.setAttribute(ContextUtils.RESPONSE_OUTPUTSTREAM_KEY, response.getOutputStream());
					HttpServletResponseWrapper responseWrapper=new ExportResponseWrapper(response);
		//	    	if (responseHeadersSetBeforeDoFilter) {
			            setResponseHeaders(request,response, exportFileName);
		//	        }
					if (easyListName!=null){
						easyDataAccessHandler.easyList(request,responseWrapper,getEasyListModelBean(request,easyListName));
					}
					
					chain.doFilter(request, responseWrapper);
					responseWrapper=null;
		//			if (!responseHeadersSetBeforeDoFilter ) {
		//	            setResponseHeaders(request,response, exportFileName);
		//	        }
		
				}
				handleExport(request, response, context);
		}catch(IOException e){
			throw e;
		}finally{
			//request.setAttribute(ContextUtils.RESPONSE_OUTPUTSTREAM_KEY, "".intern());
		}
		
    }
    
    
    public void handleExport(HttpServletRequest request, HttpServletResponse response, WebContext context) {
        try {
            Object viewData = request.getAttribute(TableConstants.VIEW_DATA);
            if (viewData != null) {
                Preferences preferences = new TableProperties();
                preferences.init(null, TableModelUtils.getPreferencesLocation(context));
                String viewResolver = (String) request.getAttribute(TableConstants.VIEW_RESOLVER);
                Class classDefinition = Class.forName(viewResolver);
                ViewResolver handleExportViewResolver = (ViewResolver) classDefinition.newInstance();
                request.setAttribute(TableConstants.SERVLET_REAL_PATH, servletRealPath);
                handleExportViewResolver.resolveView(request, response, preferences, viewData);
//   			response.flushBuffer();
                if (!response.isCommitted()){
                	response.getOutputStream().flush();
                	response.getOutputStream().close();
                }
            }
        } catch (Exception e) {
        	LogHandler.errorLog(logger, e);
        }
    }

    
    public void setResponseHeaders(HttpServletRequest request,HttpServletResponse response, String exportFileName) {
        String mimeType = MimeUtils.getFileMimeType(exportFileName);
//        response.reset(); 
        if (StringUtils.isNotBlank(mimeType)) {
            response.setContentType(mimeType);
        }
//        response.setHeader("Content-Type",mimeType);
        try {
        	 exportFileName= RequestUtils.encodeFileName(request,exportFileName);

	    } catch (UnsupportedEncodingException e) {
				String errorMessage = "Unsupported response.getCharacterEncoding() [" + "UTF-8" + "].";
				LogHandler.errorLog(logger,"TDExportFilter.setResponseHeaders() - " + errorMessage);
		}
	    //ec:
        response.setHeader("Content-Disposition", "attachment;filename=\"" + exportFileName + "\"");
        response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
        response.setHeader("Pragma", "public");
        // end ec;
        
//        response.setHeader("Content-Transfer-Encoding","binary");
//        response.setHeader("Cache-Control","private");
//        response.setHeader("Pragma", "private");
        response.setDateHeader("Expires", (System.currentTimeMillis() + 1000));

    }

    
    
    // TODO : 
    protected void webProxy(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/xml");
		PrintWriter out = response.getWriter();
		URL url = new URL(request.getParameter("url"));
		BufferedReader bf = new BufferedReader(new InputStreamReader(url
				.openStream()));
		String line;
		while ((line = bf.readLine()) != null) {
			out.println(line);
		}
		bf.close();
	} 
    
    
    public String getEasyList(ServletRequest servletRequest){
    	String easyDataAccess=null;
    	if (useEasyDataAccess){
    		try{
    			easyDataAccess=servletRequest.getParameter(ECSideConstants.EASY_DATA_LIST_FLAG);
    		}catch(Exception e){
    			easyDataAccess=null;
    		}
    	}
     	return StringUtils.isNotBlank(easyDataAccess)?easyDataAccess:null;
    }

    public String getEasyDataExport(ServletRequest servletRequest){
    	String easyDataAccess=null;
    	if (useEasyDataAccess){
    		easyDataAccess=servletRequest.getParameter(ECSideConstants.EASY_DATA_EXPORT_FLAG);
    	}
		if (StringUtils.isNotBlank(easyDataAccess) && easyDataAccess.indexOf('.')>0){
			easyDataAccess=easyDataAccess.substring(0,easyDataAccess.indexOf('.'));
		}
     	return StringUtils.isNotBlank(easyDataAccess)?easyDataAccess:null;
    }
    
    
    public String getEasyDataAccess(ServletRequest servletRequest){
    	String easyDataAccess=null;
    	if (useEasyDataAccess){
    		easyDataAccess=servletRequest.getParameter(ECSideConstants.EASY_DATA_ACCESS_FLAG);
    	}
		if (StringUtils.isNotBlank(easyDataAccess) && easyDataAccess.indexOf('.')>0){
			easyDataAccess=easyDataAccess.substring(0,easyDataAccess.indexOf('.'));
		}
     	return StringUtils.isNotBlank(easyDataAccess)?easyDataAccess:null;
    }
    
    
    public static String getExportFileName(ServletRequest servletRequest){
    	String fileName=servletRequest.getParameter(ECSideConstants.EASY_DATA_EXPORT_FILENAME);
    	if (StringUtils.isBlank(fileName)){
    		String eda=servletRequest.getParameter(ECSideConstants.EASY_DATA_EXPORT_FLAG);
    		if (eda.indexOf('.')>0){
    			fileName=eda.substring(eda.indexOf('.')+1);
    		}
    	}
     	return StringUtils.isNotBlank(fileName)?fileName:null;
    }
    
    public static String getSqlName(ServletRequest servletRequest){
    	String sqlName=servletRequest.getParameter(ECSideConstants.EASY_DATA_ACCESS_SQLNAME);
    	if (StringUtils.isBlank(sqlName)){
    		String eda=servletRequest.getParameter(ECSideConstants.EASY_DATA_ACCESS_FLAG);
    		if (StringUtils.isBlank(eda)){
    			eda=servletRequest.getParameter(ECSideConstants.EASY_DATA_EXPORT_FLAG);
    		}
    		if (StringUtils.isNotBlank(eda) && eda.indexOf('.')>0){
    			sqlName=eda.substring(eda.indexOf('.')+1);
    		}
    	}
     	return StringUtils.isNotBlank(sqlName)?sqlName:null;
    }
    
	public AbstractEasyListModel getEasyListModelBean(HttpServletRequest request,String beanName){
    	return (AbstractEasyListModel)getBean(request,beanName);
    }
    
    public DataAccessModel getDataAccessModelBean(HttpServletRequest request,String beanName){
    	return (DataAccessModel)getBean(request,beanName);
    }
	
    public DataExportModel getDataExportModelBean(HttpServletRequest request,String beanName){
    	return (DataExportModel)getBean(request,beanName);
    }
    
    public Object getBean(HttpServletRequest request,String beanName){
    	return ExportFilterUtils.getBean(request, beanName);
    }
    
	public void destroy() {

		this.filterConfig = null;

	}

    
}

⌨️ 快捷键说明

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