@RequestMapping(value="/merge",method={RequestMethod.GET,RequestMethod.POST})
public void getJS(HttpServletRequest request, HttpServletResponse response){
PrintWriter writer = null;
String fileNames = request.getParameter("fileNames");
try {
String jsContent = getStaticResource(fileNames);
response.reset();
response.setBufferSize(2048);
response.setCharacterEncoding("utf-8");
response.setContentLength(jsContent.getBytes("utf-8").length);
response.setContentType("application/javascript");
if(fileNames != null && !"".equals(fileNames)) {
String[] fileNamesArr = fileNames.split(",");
if(fileNamesArr!=null && fileNamesArr.length>0){
if(fileNamesArr[0].endsWith(".css") || fileNamesArr[0].endsWith(".CSS")){
response.setContentType("text/css");
}
}
}
response.setStatus(HttpServletResponse.SC_OK);
writer = response.getWriter();
writer.print(jsContent);
writer.flush();
} catch (Exception e) {
System.out.println("获取js文件失败:"+e.getMessage());
try {
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,e.getMessage());
} catch (IOException e1) {
System.out.println(e1.getMessage());
}
}finally{
if(writer != null){
writer.close();
}
}
}
//合并静态文件
private String getStaticResource(String fileNames) {
if(fileNames != null && !"".equals(fileNames)){
String[] fileNamesArr = fileNames.split(",");
StringBuffer sb_result = new StringBuffer(";");
if(fileNamesArr != null && fileNamesArr.length>0){
for(String fileName:fileNamesArr){
//读取文件
String fileContent = null;
try{
InputStream is = new FileInputStream(Paths.get(staticpath, fileName).toFile());
ByteArrayOutputStream baos=new ByteArrayOutputStream();
byte[] buffer = new byte[2048];
int len = 0;
while((len=is.read(buffer))!=-1){
baos.write(buffer, 0, len);
}
is.close();
baos.close();
fileContent = baos.toString();
}catch(Exception e){
e.printStackTrace();
}
if(StringUtils.isEmpty(fileContent)){
continue;
}
sb_result.append(fileContent+";");
}
return sb_result.toString();
}else{
return ";";
}
}else{
return ";";
}
}
WEB页面加载优化-JS、CSS等多静态文件合并
最新推荐文章于 2019-05-23 13:03:00 发布