這篇文章主要為大家展示了Java中如何實(shí)現(xiàn)HttpServletResponse響應(yīng),內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來(lái)看看吧。
創(chuàng)新互聯(lián)公司長(zhǎng)期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為休寧縣企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站制作,休寧縣網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
用戶在客戶端輸入網(wǎng)址(虛擬路徑)時(shí),開始發(fā)送一個(gè)HTTP請(qǐng)求(請(qǐng)求行、請(qǐng)求頭、請(qǐng)求體)至服務(wù)器。服務(wù)器內(nèi)的Tomcat引擎會(huì)解析請(qǐng)求的地址,去找XML文件,然后根據(jù)虛擬路徑找Servlet的真實(shí)路徑,真實(shí)的Servlet會(huì)將請(qǐng)求的信息封裝成request(請(qǐng)求)對(duì)象,然后再創(chuàng)建一個(gè)response(響應(yīng))對(duì)象,(此時(shí)的response內(nèi)是空的)同時(shí)創(chuàng)建servlet對(duì)象,并調(diào)用service方法(或doGet和doPost方法)。
這樣就是把兩個(gè)對(duì)象傳給了服務(wù)器內(nèi)的某個(gè)servlet的service方法,通過(guò)這個(gè)方法,我們可以獲得request的所有的信息,并且向response內(nèi)設(shè)置信息。response.getwriter().write()將內(nèi)容寫到response的緩沖區(qū),這樣service方法結(jié)束了,方法返回后,tomcat引擎會(huì)將從該response緩沖區(qū)中獲取的設(shè)置信息封裝成一個(gè)HTTP響應(yīng)(響應(yīng)行、響應(yīng)頭、響應(yīng)體),發(fā)送給客戶端??蛻舳私馕鲰憫?yīng)回來(lái)的東西繼而進(jìn)行顯示。
概述:
我們?cè)趧?chuàng)建Servlet時(shí)會(huì)覆蓋service()方法,或doGet()/doPost(),這些方法都有兩個(gè)參數(shù),一個(gè)為代表請(qǐng)求的request和代表響應(yīng)response。service方法中的response的類型是ServletResponse,而doGet/doPost方法的response的類型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加強(qiáng)大
通過(guò)response 設(shè)置響應(yīng)行:
設(shè)置響應(yīng)行的狀態(tài)碼:setStatus( int sc)
通過(guò)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è)置定時(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"%>Insert title here 恭喜您,注冊(cè)成功! 5 秒后跳轉(zhuǎn),如沒跳轉(zhuǎn),請(qǐng)點(diǎn)擊這里
重定向:(請(qǐng)求服務(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中如何實(shí)現(xiàn)HttpServletResponse響應(yīng)的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。