12-撩课JavaEE-Response

作者: 撩课学院 | 来源:发表于2018-10-26 07:22 被阅读11次

    学习地址:
    撩课-JavaWeb系列1之基础语法-前端基础
    撩课-JavaWeb系列2之XML
    撩课-JavaWeb系列3之MySQL
    撩课-JavaWeb系列4之JDBC
    撩课-JavaWeb系列5之web服务器-idea
    课程下载地址:
    链接:https://pan.baidu.com/s/1qilY0kIpgnxuLELxjNIQxw 提取码:4s9t


    一、response响应过程

    牢记响应的流程图

    在去发送一个请求时,
    会找到tomcat引擎
    引擎会找到对应的web应用
    并且会创建request对象
    和response对象
    
    找到应用后, 
    会执行应用的web.xml
    再去根据url-patten的内容
    创建Servlet对象
    
    并且会调用Servlet对象的service方法,
    并且把创建的request对象和response对象
    传入到方法当中
    
    拿到response对象后,
    自己可以往响应当中
    写入一些自己给客户端的内容
    
    通过response.getwrite().wirte("写的内容")
    方法进行写入
    写的内容,
    是存到一个response缓冲区当中
    当方法执行结束之后,
     tomcat就会从response缓冲区
    当中取出数据
    取出你的数据同时,
    
    它自己还会自动的往里面
    添加一些服务器相关的信息进去
    所以响应给浏览器时, 
    可以看到除了自己写的内容, 
    还会有一些服务器相关的信息
    
    image.png

    二、学习响应

    通过response设置响应行,响应头 ,响应体

    设置响应行

    response.setState(Int code)
    

    设置响应头

    add代表添加新的内容
    addHeader(String name,String value)
    addIntHeader(String name,int value)
    addDateHeader(String name,date)
    
    set代表设置,已经存在的内容
    setHeader(String name,String value)
    setIntHeader(String name,int value)
    setDateHeader(String name,Date value)
    

    重定向

    1.什么是重定向?
    2.重定向的状态码?
    3.重定向特点?
    4.定时刷新重定向

    什么是重定向
        到服务器当中去找servlet1
        servlet1当中没有这个资源,告诉你去找servlet2
        再去发送一个请求到servlet2
    状态码
        302
    特点
        要访问两次服务器
        第一次访问是人为的去访问
        第二次是自动的访问
        浏览器地址栏已经发生变化
    设置重定向
        设置响应码
        设置响应头
            
    封装的重写向
        每次都要写状态码,和location比较麻烦
        就给封装了一个方法
        response.sendRedirect("/bei/servlet2")
                
    定时刷新重定向
        response.setHeader("refresh","5;url=http://www.baidu.com")
        5代表5秒
        url的值为5秒后要去跳转的地址
    

    设置响应体

    1.通过write方法来写
    2.通过OutPutStream来写

    1.通过write方法来写
    response.getwrite().wirte(“要写的内容”)
    默认情况下写的中文内容会乱码
        把写的内容存到缓存区中使用的是ISO8859
        ISO8859不支持中文,所以会乱码
    在存之前设置可以设置存放的编码
        response.setCharacterEncoding("UTF-8")
    告知浏览器使用的是utf-8编码
        response.setHeader("Content-Type", "text/html;charset=UTF-8");
            
    上面代码只需要写第二句就行, 
    tomcat看到设置了为utf-8的编码,
    它在存在的时候也会使用utf-8的编码
    使用封装写法
        response.setContentType("text/html;charset=UTF-8");
    
    2.通过OutPutStream来写
        FileInputSteam
        read方法读取一个字节
        read(byte[] b)
        一次读取多个字节,并存放到数组b中
        上面是一次一滴一滴给你,这种是一次装一水桶再给你
        读取全部的数据
    
        FileOutputSteam
        write()
        一次性写一个字符
        write(buffer)
        一个性写多个字符
        write(buffer,0,len)
        一次性写指定个数的字符
    response注意点
        getWrite()和getOutputSteam不能同时调用
    

    image.png

    博文全套 视频讲解 点击以下链接查看
    https://study.163.com/course/courseMain.htm?courseId=1005981003&share=2&shareId=1028240359

    相关文章

      网友评论

        本文标题:12-撩课JavaEE-Response

        本文链接:https://www.haomeiwen.com/subject/tqptoftx.html