@RequestMapping(value = "exportAll") public void exportAll(HttpServletRequest request,HttpServletResponse response) throws Exception { String id = request.getParameter("id"); String xiangmujieduan = request.getParameter("xiangmujieduan"); String tempName = "合约执行情况"; if(xiangmujieduan.equals("1")) { tempName="基建期-"+tempName; }else if(xiangmujieduan.equals("2")) { tempName="运营期-"+tempName; } OutputStream os = null; try { Workbook wb = lsContractConfigService.createContractTemplate(id,xiangmujieduan); response.reset(); os = response.getOutputStream(); String time = DateUtils.getDate("yyyyMMddHHmmss"); String fileName = tempName + "-" + time + ".xlsx"; response.setContentType("application/vnd.ms-excel; charset=utf-8"); response.setHeader("Content-Disposition","attachment; filename=" + new String((fileName.trim()).getBytes("UTF-8"), "ISO8859-1")); ByteArrayOutputStream bos = new ByteArrayOutputStream(); wb.write(bos); os.write(bos.toByteArray()); os.flush(); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } finally { if (null != os) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } } } 这段代码怎么优化
时间: 2023-02-09 08:06:28 浏览: 170
02@RequestMapping映射.md
这段代码看起来没有什么明显的可以优化的地方,但是有一些可以注意的点:
1. 变量命名建议使用规范,比如 `tempName` 可以命名为 `templateName`。
2. 在没有特殊需要的情况下,建议使用 try-with-resources 语句来管理资源,可以节省一些代码量。
3. 在设置响应的 HTTP 头信息时,使用常量代替字符串,可以减少出错的概率:
```java
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
```
4. 可以使用 Log4j 等日志框架记录异常信息,方便追踪问题。
5. 建议将导出的代码封装到一个单独的方法中,比如 `exportContract(id, phase, response)`,方便代码的重用和维护。
阅读全文