ServletResponse是什么
Servlet生命周期是什么?
一般的Servlet(GenericServlet,即與協(xié)議無(wú)關(guān)的Servlet)的生命周期:init() --> GenericServlet.service(ServletRequest req,ServletResponse res) --> destroy.
HttpServlet的生命周期: init() --> GenericServlet.service(ServletRequest req, ServletResponse res)---> service(HttpServletRequest req, HttpServletResponse resp) --> doXXXX()-->destroy.
有沒(méi)有必要重寫(xiě)GenericServlet.service()方法?
對(duì)于HttpServlet來(lái)說(shuō)沒(méi)有必要。只需要重寫(xiě)它的doXXXX()方法就可以了。HttpServlet中service()方法會(huì)自動(dòng)的根據(jù)用戶請(qǐng)求類(lèi)型把請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的doXXXX()方法(例如doGet()方法)。
ServletRequest.getReader()和ServletRequest.getInputStream()如何使用?
注意兩個(gè)方法不能同時(shí)使用。ServletRequest.getRealPath(String path)方法已經(jīng)不推薦使用。請(qǐng)使用ServletContext.getRealPath(String path)方法。
ServletResponse缺省的字符集(charset)是什么?
ServletResponse缺省的字符集(charset)是ISO-8859-1,可以通過(guò)setContentType(java.lang.String)方法改變新的字符集。例如:setContentType("text/html; charset=Shift_JIS").關(guān)于字符集信息,可以瀏覽RFC 2045
HttpServletRequest.getRequestURI()和HttpServletRequest.getRequestURL()區(qū)別是什么?
request.getRequestURI() 返回值類(lèi)似:/xuejava/requestdemo.jsp
request.getRequestURL() 返回值類(lèi)似:http://localhost:8080/xuejava/requestdemo.jsp
HttpServletRequest.encodeURL()和HttpServletRequest.encodeRedirectURL(()區(qū)別是什么?為什么要有兩個(gè)不同的方法呢?
當(dāng)用URL-rewriting方式來(lái)管理Session的時(shí)候,需要用到以上的兩個(gè)方法。兩個(gè)方法的不同點(diǎn)是:兩個(gè)方法確定是否需要包含session ID的邏輯不同。在調(diào)用HttpServletResponse.sendRedirect前,應(yīng)該先調(diào)用encodeRedirectURL()方法,否則可能會(huì)丟失Sesssion信息。
【編輯推薦】