原理:利用servlet,IO流,实现数据的传输。

1.dorado中创建RequestCommand,其中path指向servlet

2.创建导出servlet,并自定义导出方法

public class LoadFile extends HttpServlet {
 
  @Override
  public void init() {
  }

  @Override
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     String fileName = "******.txt";

   String str = "****************";//导出内容
     ServletOutputStream sos = null;
     try {//设置文件名编码格式
        fileName = java.net.URLEncoder.encode(fileName, "utf-8");
     } catch (UnsupportedEncodingException e1) {
        throw new RuntimeException("不支持的编码格式!!!");
     }

     try{
        response.reset();//必须加,不然保存不了临时文件
            response.setContentType("application/octet-stream");//设置文件内容格式,防止浏览器自动打开
            response.addHeader("Content-Disposition", "attachment; filename=" + fileName);//设置下载的文件名
        //输出流
        sos = response.getOutputStream();
        sos.write(str.getBytes());
     } catch (IOException e) {
        throw new RuntimeException(e.getMessage());
     } finally{
        sos.flush();
        sos.close();
     }
  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
    doGet(req, resp);
  }
}

3.在web.xml中配置servlet

 <servlet>
    <servlet-name>LoadFile</servlet-name>
    <servlet-class>com.fenet.insurance.mm.invoicemanage.action.LoadFile</servlet-class>

</servlet>

<servlet-mapping>
    <servlet-name>LoadFile</servlet-name>
    <url-pattern>/LoadFile</url-pattern>
 </servlet-mapping>

相关文章:

  • 2021-08-28
  • 2021-12-12
  • 2021-09-16
  • 2021-07-08
  • 2022-12-23
  • 2021-08-14
  • 2021-12-16
猜你喜欢
  • 2021-10-30
  • 2021-08-16
  • 2021-08-07
  • 2021-08-19
  • 2021-04-25
  • 2021-08-06
相关资源
相似解决方案