A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

春天洒水车

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

1. 概念:是最基础的网页开发语言
  * Hyper Text Markup Language 超文本标记语言
   * 超文本:
    * 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本.
   * 标记语言:
    * 由标签构成的语言。<标签名称> 如 html,xml
    * 标记语言不是编程语言

标签学习:
  1. 文件标签:构成html最基本的标签
   * html:html文档的根标签
   * head:头标签。用于指定html文档的一些属性。引入外部的资源
   * title:标题标签。
   * body:体标签
   * <!DOCTYPE html>:html5中定义该文档是html文档


1. 创建JavaEE项目
  2. 定义一个类,实现Servlet接口
   * public class ServletDemo1 implements Servlet
  3. 实现接口中的抽象方法
  4. 配置Servlet
    在web.xml中配置:
      <!--配置Servlet -->
      <servlet>
          <servlet-name>demo1</servlet-name>
          <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
      </servlet>
  
      <servlet-mapping>
          <servlet-name>demo1</servlet-name>
          <url-pattern>/demo1</url-pattern>
      </servlet-mapping>

String filename = request.getParameter("filename");
        //2.使用字节输入流加载文件进内存
        //2.1找到文件服务器路径
        ServletContext servletContext = this.getServletContext();
        String realPath = servletContext.getRealPath("/img/" + filename);
        //2.2用字节流关联
        FileInputStream fis = new FileInputStream(realPath);
        //3.设置response的响应头
        //3.1设置响应头类型:content-type
        String mimeType = servletContext.getMimeType(filename);//获取文件的mime类型
        response.setHeader("content-type",mimeType);
        //3.2设置响应头打开方式:content-disposition
        //解决中文文件名问题
        //1.获取user-agent请求头、
        String agent = request.getHeader("user-agent");
        //2.使用工具类方法编码文件名即可
        filename = DownLoadUtils.getFileName(agent, filename);
        response.setHeader("content-disposition","attachment;filename="+filename);
        //4.将输入流的数据写出到输出流中
        ServletOutputStream sos = response.getOutputStream();
        byte[] buff = new byte[1024 * 8];
        int len = 0;
        while((len = fis.read(buff)) != -1){
            sos.write(buff,0,len);
        }
        fis.close();

    }


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马