溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中如何實現(xiàn)HttpServletResponse響應(yīng)

發(fā)布時間:2020-07-22 10:06:02 來源:億速云 閱讀:339 作者:小豬 欄目:編程語言

這篇文章主要為大家展示了Java中如何實現(xiàn)HttpServletResponse響應(yīng),內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

 用戶在客戶端輸入網(wǎng)址(虛擬路徑)時,開始發(fā)送一個HTTP請求(請求行、請求頭、請求體)至服務(wù)器。服務(wù)器內(nèi)的Tomcat引擎會解析請求的地址,去找XML文件,然后根據(jù)虛擬路徑找Servlet的真實路徑,真實的Servlet會將請求的信息封裝成request(請求)對象,然后再創(chuàng)建一個response(響應(yīng))對象,(此時的response內(nèi)是空的)同時創(chuàng)建servlet對象,并調(diào)用service方法(或doGet和doPost方法)。

這樣就是把兩個對象傳給了服務(wù)器內(nèi)的某個servlet的service方法,通過這個方法,我們可以獲得request的所有的信息,并且向response內(nèi)設(shè)置信息。response.getwriter().write()將內(nèi)容寫到response的緩沖區(qū),這樣service方法結(jié)束了,方法返回后,tomcat引擎會將從該response緩沖區(qū)中獲取的設(shè)置信息封裝成一個HTTP響應(yīng)(響應(yīng)行、響應(yīng)頭、響應(yīng)體),發(fā)送給客戶端。客戶端解析響應(yīng)回來的東西繼而進行顯示。

概述:

我們在創(chuàng)建Servlet時會覆蓋service()方法,或doGet()/doPost(),這些方法都有兩個參數(shù),一個為代表請求的request和代表響應(yīng)response。service方法中的response的類型是ServletResponse,而doGet/doPost方法的response的類型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加強大

通過response 設(shè)置響應(yīng)行:

  設(shè)置響應(yīng)行的狀態(tài)碼:setStatus( int sc)

通過response 設(shè)置響應(yīng)頭:

  setHeader(String name,String value) 設(shè)置

三秒以后跳轉(zhuǎn)到百度:

public class RefreshServlet extends HttpServlet {

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //設(shè)置定時刷新的頭
    response.setHeader("refresh","5;url=https://www.baidu.com");
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }

}
<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
  window.onload=function(){
    //獲取span元素
    var second=document.getElementById("second");
    //定義秒數(shù)
    var time =5;
    //設(shè)置定時器
    var timer=setInterval(function(){
      second.innerHTML=time;
      time--;
      if(time < 0){
        clearInterval(timer);
        location.href="https://www.baidu.com" rel="external nofollow" rel="external nofollow" ;
      }
    },1000);
  }
  
</script>
</head>
<body>
  恭喜您,注冊成功!
  <span id="second" >5</span>
  秒后跳轉(zhuǎn),如沒跳轉(zhuǎn),請點擊<a href="https://www.baidu.com" rel="external nofollow" rel="external nofollow" >這里</a>
</body>
</html>

重定向:(請求服務(wù)器兩次,地址欄變化)

①、狀態(tài)碼:302;

②、響應(yīng)頭:location 代表重定向地址;

public class Servlet01 extends HttpServlet {
  private static final long serialVersionUID = 1L;
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    /*// 設(shè)置響應(yīng)狀態(tài)碼
    response.setStatus(302);
    //設(shè)置響應(yīng)頭中的Location
    response.setHeader("Location","/WEB0/Servlet02");*/
    //重定向
    response.sendRedirect("/WEB0/Servlet02");
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }

}
public class Servlet02 extends HttpServlet {
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.getWriter().write("Servlet02");
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }

}

以上就是關(guān)于Java中如何實現(xiàn)HttpServletResponse響應(yīng)的內(nèi)容,如果你們有學(xué)習(xí)到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI