zoukankan      html  css  js  c++  java
  • 传智播客JavaWeb day03

    ServletContext

    这堂课主要讲ServletContext这个web域(可以看得见范围的)对象,web在启动的时候会创建唯一的ServletContext域对象。

    作用:1.用来web域共享数据

        1.1 通过设置域属性(SetAttribute)和获取域属性(GetAttribute)来实现数据共享

       2. 实现转发

        2.1 转发与重定向的区别

          转发一次请求一次响应(获取转发对象RequestDispatcher,通过forward方法实现转发);重定向两次请求两次响应

       3. 读取资源文件

        3.1 获取真实的文件路径(通过父类中的GetRealPath方法获取文件的真实路径)

    2015-02-27

    Response:向客户端发送数据

     主要讲了向客户端发送数据以及解决乱码的问题

    1.Response.GetOutputStream字节流

      1.1 通过str.GetBytes("utf-8")指定编码

      1.2 SetHeader("content-type","text/html;charset=utf-8")指定客户端的解析码表

    2.Response.GetWriter字符

      2.1 Response.setCharacterEncoding("utf-8")设置服务器码表

    3. 由于setheader使用频率比较高所以封装了一个方法SetContentType,这个既能设置服务器端编码又能设置客户端编码

    2015-02-28

    Response--下载文件

    1. 输入流  首先要有一个输入流读取附件

    2.输出流 此时的输出流就是response中的输出流

    3.将输入流的数据读取到输出流中  通过一个字节数组缓冲区转

    4. 设置头部信息  设置content-disposition值为attachement;filename="xx"如果有中文利用URLEncoder.encode("美女.jpg","utf-8");

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setHeader("content-disposition", "attachement;filename="+URLEncoder.encode("美女.jpg","utf-8"));
            InputStream in = new FileInputStream(this.getServletContext()
                    .getRealPath("spring.jpg"));
            OutputStream out = response.getOutputStream();
            byte[] bs = new byte[1024];
            int count = 0;
            while ((count =in.read(bs))!=-1) {
                out.write(bs, 0, bs.length);            
            }
            
            in.close();
        }
    View Code

    ps:response会自动关闭输出流

    2015-03-02

    Response--定时刷新页面

    定时刷新页面可以通过以下两种方式实现一个是设置http头部还有一个是通过设置meta来模拟,应用场景如注册成功后跳转到首页。

    1.设置http头部

    SetHeader("Refresh","3;url=")

    2.设置meta标签

     <meta http-equiv="refresh" content="3;url=/Day03/servlet/ResponseServlet">

    Response--控制缓存

    通过设置头部expires(0,-1)、cache-control(no-cache)、pragma(no-cache)

    Response--重定向

    重定向的原理就是302+location

    1.setstatus

    2.response.setHeader("location", "/Day03/servlet/CacheServlet");

    由于这个方法常用故封装了一个方法SendRedirect("url")

     Response--输出验证码图片

    1.内存图  首先要实例化一张内存图对象

    2. 获取这张图的画板 当一个内存图对象的时候还不能够直接往上面画东西,得获取图片的画板对象

    3. 设置颜色(好比我们操作画图软件时设置一个颜色) 

    4.边框

    5.干扰点、线  防止机器注册

    6.画字

    7.输出   从内存中输出到输出流中来

  • 相关阅读:
    MDX Step by Step 读书笔记(六) Building Complex Sets (复杂集合的处理) Filtering Sets
    在 Visual Studio 2012 开发 SSIS,SSAS,SSRS BI 项目
    微软BI 之SSIS 系列 在 SSIS 中读取 SharePoint List
    MDX Step by Step 读书笔记(五) Working with Expressions (MDX 表达式) Infinite Recursion 和 SOLVE_ORDER 原理解析
    MDX Step by Step 读书笔记(五) Working with Expressions (MDX 表达式)
    使用 SQL Server 2012 Analysis Services Tabular Mode 表格建模 图文教程
    MDX Step by Step 读书笔记(四) Working with Sets (使用集合) Limiting Set and AutoExists
    SQL Server 2012 Analysis Services Tabular Model 读书笔记
    Microsoft SQL Server 2008 MDX Step by Step 学习笔记连载目录
    2011新的开始,介绍一下AgileEAS.NET平台在新的一年中的发展方向
  • 原文地址:https://www.cnblogs.com/lihongchen/p/4302906.html
Copyright © 2011-2022 走看看