response:响应(一)

response:响应

作用:
        往浏览器写东西
    组成部分:
        响应行 响应头 响应体
    操作响应行
        格式:
            协议/版本 状态码 状态码说明
        状态码:
            1xx:已发送请求
            2xx:已完成响应
                200:正常响应
            3xx:还需浏览器进一步操作
                302:重定向 配合响应头:location
                304:读缓存
            4xx:用户操作错误
                404:用户操作错误.
                405:访问的方法不存在
            5xx:服务器错误
                500:内部异常
        常用方法:
            setStatus(int 状态码):针对于 1 2 3
            了解 :
                sendError(int 状态码):针对于 4xx和5xx
    操作响应头
        格式:key/value(value可以是多个值)
        常用的方法:
            setHeader(String key,String value):设置字符串形式的响应头
            了解:setIntHeader(String key,int value):设值整形的响应头
            了解:setDateHeader(String key,long value):设值时间的响应头
            
            addHeader(String key,String value):添加置字符串形式的响应头 之前设置过则追加,若没有设置过则设置
            了解:addIntHeader(String key,int value):添加整形的响应头
            了解:addDateHeader(String key,long value):添加时间的响应头
        常用的响应头:
            location:重定向
            refresh:定时刷新
            content-type:设置文件的mime类型,设置响应流的编码及告诉浏览器用什么编码打开
            content-disposition:文件下载
            

            重定向:    

                方式1:
                    ★response.sendRedirect("/day10/loc2");
                方式2:
                    response.setStatus(302);
                    respooen.setHeader("location","/day10/loc2");
                    

            定时刷新:

                方案1:设置头 refresh 昨天做过
                    respooen.setHeader("refresh","秒数;url=跳转的路径");
                方案2:http的meta标签

                    <meta http-equiv="refresh" content="3;url=/day10/refresh2.html">

   重定向与定时刷新案例

首页html代码:

  <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="/webfour/Loc1">重定向页面(响应头)</a>
<a href="/webfour/refresh1.html">定时器</a>
<a href="/webfour/Print">操作响应体</a>
</body>

</html>

XML文件代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>webfour</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>Loc1Servlet</display-name>
    <servlet-name>Loc1Servlet</servlet-name>
    <servlet-class>com.feizhu._response_a_location.Loc1Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Loc1Servlet</servlet-name>
    <url-pattern>/Loc1</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>Loc2Servlet</display-name>
    <servlet-name>Loc2Servlet</servlet-name>
    <servlet-class>com.feizhu._response_a_location.Loc2Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Loc2Servlet</servlet-name>
    <url-pattern>/Loc2</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>PrintServlet</display-name>
    <servlet-name>PrintServlet</servlet-name>
    <servlet-class>com.feizhu._response_b_body.PrintServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>PrintServlet</servlet-name>
    <url-pattern>/Print</url-pattern>
  </servlet-mapping>
</web-app>

Loc1类代码:

package com.feizhu._response_a_location;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *  //重定向
 */
public class Loc1Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        System.out.println("点我可以重定向到目标页面");
        
//       //方式一:理解
//       //设置状态码  302 重定向
//       response.setStatus(302);
//       //设置响应头
//       response.setHeader("location","/webfour/Loc2");
       //方式二 :掌握
        response.sendRedirect("/webfour/Loc2");

        
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        doGet(request, response);
    }

}

 

Loc2类代码

package com.feizhu._response_a_location;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//目标
public class Loc2Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("成功跳转到目标页面");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        doGet(request, response);
    }

}

refresh1页面代码:

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!--
    http-equiv:响应头
    content: 响应头的内容
 -->
<meta http-equiv="refresh" content="3;url=/webfour/refresh2.html">
<title>Insert title here</title>
</head>
<body>
       恭喜您,登录成功!  <span id="sid">3</span>秒之后跳转到refresh2.html页面

</body>

//JS实现秒数动态倒数

<script  type="text/javascript">
    οnlοad=function(){
        //设置定时器
        setInterval(change,1000);
    }
    i=3;
    //时间变化
    function change(){
        //获取元素的标签
        var obj=document.getElementById("sid");
        obj.innerHTML=--i;
    }

       
   
</script>
</html>

refresh2页面代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
跳转成功
</body>
</html>

 

效果展示:

备注:由于个人原因,本博客暂停更新。如有问题可联系本人,本人提供技术指导、学习方向、学习路线。本人微信wlp1156107728(添加注明来意)   QQ1156107728(添加注明来意)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值