這篇文章主要為大家展示了Java中如何實現HttpServletResponse響應,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
用戶在客戶端輸入網址(虛擬路徑)時,開始發送一個HTTP請求(請求行、請求頭、請求體)至服務器。服務器內的Tomcat引擎會解析請求的地址,去找XML文件,然后根據虛擬路徑找Servlet的真實路徑,真實的Servlet會將請求的信息封裝成request(請求)對象,然后再創建一個response(響應)對象,(此時的response內是空的)同時創建servlet對象,并調用service方法(或doGet和doPost方法)。
這樣就是把兩個對象傳給了服務器內的某個servlet的service方法,通過這個方法,我們可以獲得request的所有的信息,并且向response內設置信息。response.getwriter().write()將內容寫到response的緩沖區,這樣service方法結束了,方法返回后,tomcat引擎會將從該response緩沖區中獲取的設置信息封裝成一個HTTP響應(響應行、響應頭、響應體),發送給客戶端??蛻舳私馕鲰憫貋淼臇|西繼而進行顯示。
概述:
我們在創建Servlet時會覆蓋service()方法,或doGet()/doPost(),這些方法都有兩個參數,一個為代表請求的request和代表響應response。service方法中的response的類型是ServletResponse,而doGet/doPost方法的response的類型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加強大
通過response 設置響應行:
設置響應行的狀態碼:setStatus( int sc)
通過response 設置響應頭:
setHeader(String name,String value) 設置
三秒以后跳轉到百度:
public class RefreshServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//設置定時刷新的頭
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");
//定義秒數
var time =5;
//設置定時器
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>
秒后跳轉,如沒跳轉,請點擊<a href="https://www.baidu.com" rel="external nofollow" rel="external nofollow" >這里</a>
</body>
</html>重定向:(請求服務器兩次,地址欄變化)
①、狀態碼:302;
②、響應頭:location 代表重定向地址;
public class Servlet01 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*// 設置響應狀態碼
response.setStatus(302);
//設置響應頭中的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);
}
}以上就是關于Java中如何實現HttpServletResponse響應的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。