就业冲刺

文件下载功能

HTTP协议提供了文件下载功能,具体参考:

http://doc.tedu.cn/rfc/rfc2616.txt 的19.5.1 Content-Disposition

其原理为:

只要设置Content-Disposition响应头浏览器就可以自动保存文件了。 Spring MVC Servlet Socket等技术都可以实现下载功能。

图片下载案例

  1. 创建控制器方法处理下载请求:

    /**
     * 图片下载功能
     */
    @RequestMapping(value="/img.do",
            produces="image/png")
    @ResponseBody
    public byte[] image( 
            HttpServletResponse response)
        throws IOException{
        //@ResponseBody 与 返回值byte[] 配合时候
        //Spring MVC会将byte[]数组填充到响应
        //的消息正文中发送到浏览器
        String file = 
            URLEncoder.encode("演示.png", "utf-8");
        //还需要指定两个响应头 
        //Content-Type 
        //Content-Disposition: attachment; filename="fname.ext"
        //response.setContentType("image/png");
        response.setHeader(
                "Content-Disposition", 
                "attachment; filename=\""+file+"\""); 
        byte[] body = createImage();
        //response.setContentLength(body.length);
        return body;
    }
    
  2. 创建生成图片数据的方法

    private byte[] createImage()
        throws IOException{
        BufferedImage img=
                new BufferedImage(100, 50, 
                BufferedImage.TYPE_3BYTE_BGR);
        img.setRGB(50, 25, 0xffffff);
        //out相当于酱油瓶
        ByteArrayOutputStream out=
                new ByteArrayOutputStream();
        //将图片的数据导入酱油瓶out
        ImageIO.write(img, "png", out);
        out.close();//关闭out
        //将酱油瓶out中的数据到出来
        byte[] bytes = out.toByteArray();
        return bytes;
    }
    
  3. 配置spring-mvc.xml在拦截器上放开 URL

    <mvc:exclude-mapping path="/user/img.do"/> 
    
  4. 编写demo.html

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
      <h1>下载功能</h1>
      <a href="user/img.do">下载测试图片</a>
    </body>
    </html>
    
  5. 测试。

下载Excel功能

与下载图片类似,可以实现下载Excel功能,其原理为:

  1. 导入Apache 提供的 Excel API

    <!-- POI API 用于处理Excel文件 -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
    </dependency>
    
  2. 编写控制器方法

    /*
     * 下载 Excel
     */
    @RequestMapping("/excel.do")
    @ResponseBody
    public byte[] export(
            HttpServletResponse response)
        throws IOException{
        String file=URLEncoder.encode(
            "表格.xlsx", "UTF-8");
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setHeader(
            "Content-Disposition",
            "attachment; filename=\""+file+"\"");
        byte[] body = createExcel(); 
        return body;
    }
    
  3. 编写利用POI 生成Excel的方法

    private byte[] createExcel() throws IOException {
        //Workbook 就代表着一个Excel文件
        XSSFWorkbook workbook = 
                new XSSFWorkbook();
        //在工作簿中创建一个工作表(sheet)
        XSSFSheet sheet=
            workbook.createSheet("第一个表");
        //在工作表中创建一行(row), 参数是行号:0 1 2 ...
        XSSFRow row = sheet.createRow(0);
        //在行中可以添加格子, 参数是列号:0 1 2 3 ...
        XSSFCell cell = row.createCell(0);
        cell.setCellValue("Hello World!"); 
    
        ByteArrayOutputStream out=
                new ByteArrayOutputStream();
        workbook.write(out);
        workbook.close();
        out.close();
        byte[] bytes=out.toByteArray();
        return bytes;
    }
    
  4. 配置拦截器,放开URL

    <mvc:exclude-mapping path="/user/excel.do"/>
    
  5. 编写HTML

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
      <h1>下载功能</h1>
      <a href="user/img.do">下载测试图片</a>
      <a href="user/excel.do">导出Excel</a>
    </body>
    </html>
    
  6. 测试

Linux

什么是Linux

  1. Linux 是一款类Unix的操作系统。
  2. Linux 使用非常广泛

Linux 命令

  1. 适合远程管理服务器
  2. 资源占用低

Linux命令语法

命令  -选项  参数1 参数2 参数3  

列文件夹的内容

ls -al /

-a 显示全部内容
-l 显示长格式

/ 参数,目标文件夹

如何查询命令的帮助

man 命令, 使用q按键退出手册
命令 --help

Linux 的文件系统

/   根目录
|- etc  <-
|- usr  
|- home
|   |- soft01   用户的主目录
|- root   root用户的主目录
|- var
...

当前工作目录

pwd  显示当前的工作目录
cd 目标文件夹  改变当前工作目录

文件操作管理命令

  1. 创建文件夹

    cd 返回用户的主目录 mkdir 文件夹名 在当前文件夹中创建文件夹 mkdir 绝对路径名 在指定位置创建文件夹

    如: cd mkdir demo mkdir /home/soft01/abc

  2. 创建文件

    touch 文件名

  3. 修改时间

    touch 已经存在文件名/文件夹 ls -l

  4. 复制文件/文件夹命令

    cp 源文件/文件夹 目标文件/文件夹

    源文件/文件夹必须存在! 不存在就会报错误. 目标文件/文件夹不存在就是创建新的文件/文件夹 如果目标文件/文件夹是存在, 文件则覆盖,文件夹 就是复制到文件夹中.

    cp /etc/passwd passwd.bak 改名复制 cp /etc/passwd test 不改名复制 cp /etc/passwd test/pwd 改名复制 cp /etc/passwd . 复制到当前目录

    复制文件夹必须使用 -r 进行递归复制 cp -r test abc abc不存在,将test复制为abc mkdir demo cp -r test demo 将文件夹复制到demo文件夹中

改名或者移动

mv 源 目标

源:必须存在
目标:如果不存在,就是改名 目标如果存在就是移动

删除命令

rm -rf 文件 文件夹 文件夹....

rm -rf passwd.bak passws t

远程登录

购买阿里云 ECS