国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Java HttpServletResponse響應實現過程詳解

瀏覽:3日期:2022-09-01 09:54:13

 用戶在客戶端輸入網址(虛擬路徑)時,開始發送一個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. rel='external nofollow' rel='external nofollow' ; } },1000); } </script></head><body> 恭喜您,注冊成功! <span style='color:red'>5</span> 秒后跳轉,如沒跳轉,請點擊<a 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
相關文章:
主站蜘蛛池模板: 永济市| 新民市| 嘉鱼县| 海盐县| 许昌市| 津南区| 綦江县| 绥德县| 江城| 栖霞市| 三河市| 菏泽市| 晋中市| 苍山县| 瑞丽市| 吉安市| 彭州市| 金堂县| 正镶白旗| 顺昌县| 太原市| 海门市| 伊吾县| 玉林市| 依安县| 皋兰县| 丹阳市| 南岸区| 武功县| 扎鲁特旗| 万源市| 龙胜| 五常市| 十堰市| 自贡市| 桂林市| 潮安县| 沈丘县| 池州市| 漠河县| 镶黄旗|