jquery로 파일다운로드 요청하기 . framework 사용시 요청url을 변경하면 된다. 
$.fileDownload("/common/fileDownload.jsp", {
	  httpMethod: 'POST',
	  dataType:"json", // data type of response
      contentType:"application/json",
	  data: {"fileNm":fileNm},
	  successCallback: function(url) {	  
	  }
})
fileDownload.jsp 
<%@ page contentType="text/xml; charset=utf-8" language="java" errorPage="" %>
<%@page import="java.util.*"%>
<%@page import="java.io.OutputStream" %>
<%@page import="java.io.File" %>
<%@page import="java.io.FileInputStream" %>
<%@page import="java.io.IOException" %>
<%@page import="java.io.PrintWriter" %>
<%@page import="java.net.URLEncoder" %>
<%@page import="net.sf.json.JSONObject"%>
<%@page import="com.comUtil.Constants"%>
<%@page import="org.apache.commons.lang.StringUtils" %>
<%
String pathname = Constants.FILE_UPLOAD_PATH;
String filename[] = request.getParameterValues("fileNm");
if(filename.length == 1){
File uFile = new File(pathname,filename[0]);
int fSize = (int)uFile.length();
if (fSize > 0) {
	String mimetype = "application/x-msdownload";
	response.setContentType(mimetype);
	
	String header = request.getHeader("User-Agent");
	String browser ="";
	
	 if (header.indexOf("MSIE") > -1 || header.indexOf("Trident") > -1) {
		 browser= "MSIE";
     } else if (header.indexOf("Chrome") > -1) {
    	 browser= "Chrome";
     }
	
	 String dispositionPrefix = "attachment; filename=";
	 String encodedFilename = null;
	 
	if (browser.equals("MSIE")) {
		    encodedFilename = URLEncoder.encode(filename[0], "UTF-8").replaceAll("\\+", "%20");
	}else if (browser.equals("Chrome")) {
	    StringBuffer sb = new StringBuffer();
	    for (int i = 0; i < filename[0].length(); i++) {
		char c = filename[0].charAt(i);
		if (c > '~') {
		    sb.append(URLEncoder.encode("" + c, "UTF-8"));
		} else {
		    sb.append(c);
		}
	    }
	    encodedFilename = sb.toString();
	}  
	 
	response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename);
	
	response.setContentLength(fSize);
	
	OutputStream outputstream = null;
    FileInputStream inputstream = null;
	try {
		
		out.clear();
		pageContext.pushBody();
		
		 outputstream = response.getOutputStream();
         inputstream = new FileInputStream(uFile);
         byte[] buffer = new byte[1024]; 
         int length = 0; 
         while((length = inputstream.read(buffer)) > 0) {
             outputstream.write(buffer,0,length); 
         }
	 } catch (Exception e) {
         e.printStackTrace();
     } finally {
         try {
             if (inputstream != null){
                 inputstream.close();
             }
             outputstream.flush();
             outputstream.close();  
         } catch (Exception e2) {}
     }
}
	
}
%>