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