JW - response响应对象

1.HttpServletResponse对象.

HttpServletResponse接口继承自ServletResponse接口,专门用来封装HTTP响应消息
Http响应消息: 响应行 , 响应头 , 响应体 三部分.

2.响应行: http协议,状态码.

状态码:(200-成功,302-请求重定向,404-找不到,500-内部服务器错误)

  • setStatus(int status): 设置状态码.                1XX-3XX使用.
  • sendError(int sc): 发送 错误信息状态码       4XX-5XX使用
  • sendError(int code,String message): 可以添加提示说明的文本信息.

3.响应头:键值对(进行设置/修改)

  • setHeader(String name, String value): 设置http协议响应头字段.
         addHeader(String name, String value): 可以增加同名(不被覆盖)字段.
  • location: 重定向(两次请求,两次响应)
         1.设置状态码(302)之后 , setHeader(“location”,“地址”)
         2.response.sendRedirect(“地址”) ; // 简化了第一种方式.
  • refresh: 定时刷新.
         setHeader(“refresh”,"3(秒),url=“地址”) //会跳转但页面不会显示倒计时.
         JS中的使用: location.href=“地址”; //可以显示倒计时.

4.响应体:(以IO流传递大量数据)

getOutputStream( ).getBytes( ): 字节(二进制)输出流.      可以响应任意类型.
getWriter( ).print( ); 字符输出流.                                       只能响应字符串.

5.response解决中文乱码问题

第一种方式:
       response.setCharacterEncoding(“utf-8”); // 设置HttpServletResponse使用u8编码.
       response.setHeader(“Content-Type”,“text/html;charset=utf-8”): // 设置浏览器解码
第二种方式: (简洁)
       // 底层调用了setCharacterEncoding()方法.
       response.setContentType(“text/html; charset=utf-8”);

1.重定向(location)案例:

DaGeServlet.java

@WebServlet("/jieqian")
public class DaGeServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置编码格式 - 解决中文乱码问题.
        response.setContentType("text/html; charset=utf-8");
        System.out.println("你曰:大哥借我5块钱吧,忘带钱包了.");
        System.out.println("我曰:我也没带,找那个小姐姐去借吧.");

        /*  两次请求 , 两次响应.
            // 第一种方式: 设置状态吗为302 ,
            response.setStatus(302);
            // 使用location方法 , 设置重定向的地址.
            response.setHeader("location","http://localhost/day27_response/xiaojiejie");
         */

        /*
            第二种方式: sendRedirect(); 简化了第一种方式.
         */
        response.sendRedirect("http://localhost/day27_response/xiaojiejie");

    }
}

XJJServlet.java

@WebServlet("/xiaojiejie")
public class XJJServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置编码格式 - 解决中文乱码问题.
        response.setContentType("text/html; charset=utf-8");
        System.out.println("你曰:小姐姐 , 借我5块钱吧");
        response.getWriter().print("<h1 style='color=red; text-align=center; '>给你5块钱 , 拿去先用吧.</h1>");

    }
}

2.使用JS完成页面秒数的刷新并跳转.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>页面自动刷新</title>
</head>
<body>
   <span id="num">5</span>秒之后自动跳转到<a href="www.baidu.com">百度</a>
   <script type="text/javascript">
       var num = document.getElementById("num");
       var count = 5;
       setInterval(function () {
           count--;
           if(count==0){
           	   // 要跳转到路径地址.
               location.href = "www.baidu.com";
           }
           num.innerHTML = count;
       },1000)
   </script>
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值