通過前面的學(xué)習(xí),我們知道請(qǐng)求到達(dá)容器后容器會(huì)創(chuàng)建HttpServletRequest實(shí)例,并將請(qǐng)求的信息保存到實(shí)例中。在創(chuàng)建請(qǐng)求實(shí)例的同時(shí)容器也會(huì)創(chuàng)建HttpServletResponse實(shí)例,以便我們向客戶端做出響應(yīng)。
HttpServletResponse
HttpServletResponse是一個(gè)接口,它由容器負(fù)責(zé)實(shí)現(xiàn)和創(chuàng)建實(shí)例。它作為Servlet的服務(wù)器方法(doGet、doPost、doDelete)的參數(shù)之一,用來向客戶端返回消息或指示瀏覽器設(shè)定cookie等操作。
常用方法
getWriter
取得應(yīng)答流對(duì)象
setContentType
設(shè)定返回的MIME格式
encodeURL
對(duì)URL重編碼使其帶上SESSIONID
addCookie
指示瀏覽器寫入的cookie對(duì)象
演示
以下代碼向?yàn)g覽器返回一段標(biāo)準(zhǔn)HTML
中文亂碼
如果你將上面的代碼照搬到項(xiàng)目,你就會(huì)發(fā)現(xiàn)答應(yīng)消息中的中文又變成了亂碼。原因是以上的代碼還沒告訴瀏覽器返回是什么類型的內(nèi)容,瀏覽器按默認(rèn)編碼的方式進(jìn)行了解析。解決方法也很簡(jiǎn)單,應(yīng)答前指定MIME格式并指定編碼方式即可。
思考
現(xiàn)在的網(wǎng)頁有成百上千行代碼,如采用演示代碼的方式來應(yīng)答,估計(jì)會(huì)讓人崩潰。為提高編程效率,繼Servlet之后產(chǎn)生了JSP技術(shù),它可以很好的解決此類問題。JSP本質(zhì)上就是Servlet,它對(duì)servlet進(jìn)行了包裝降低編程難度,但夯實(shí)Servlet知識(shí)對(duì)學(xué)習(xí)JSP百利而無一害。