• 传智播客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.输出   从内存中输出到输出流中来

  • 相关阅读:
    我的浏览器大战
    使用Jmeter进行HTTP接口测试
    Jmeter连接SqlServer数据库进行压力测试
    java通过JDBC链接SQLServer2012 (含1433端口打通)
    读程序写结果技巧【半转】
    book118免费下载文档方法【转】
    PJ可能会用到的动态规划选讲-学习笔记
    PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记
    PJ可能会考的模拟与枚举-自学教程
    TG可能会用到的动态规划-简易自学
  • 原文地址:https://www.cnblogs.com/lihongchen/p/4302906.html
Copyright © 2020-2023  润新知