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

  • 相关阅读:
    .net core获取数据库连接 抛出The type initializer to throw an exception
    解决本地Bootstrap字体图标不可见的问题
    Bootstrap 遮罩插件jquery.mloading
    oracle 数据库触发器,插入更新时间戳
    入门wpf—— 3、样式
    VisualStudio 连接 MySql 实现增删查改
    Bootstrap-table 使用总结,和其参数说明
    oracle数据库 TIMESTAMP(6)时间戳类型
    3.xadmin配置
    2.Model设计
  • 原文地址:https://www.cnblogs.com/lihongchen/p/4302906.html
Copyright © 2020-2023  润新知