響應(yīng)頭:response.sendError(int sc,String msg)惨撇;
response.sendError(404,"您訪問的資源在伊脓,就不給你看");
獲取請求URL
response.getWriter().print(request.getScheme()+"<br>");
response.getWriter().print(request.getServerName()+"<br>");
response.getWriter().print(request.getServerPort()+"<br>");
response.getWriter().print(request.getContextPath()+"<br>");
response.getWriter().print(request.getServletPath()+"<br>");
response.getWriter().print(request.getQueryString()+"<br>");
response.getWriter().print(request.getRequestURL()+"<br>");
請求轉(zhuǎn)發(fā)和請求包含
請求轉(zhuǎn)發(fā):rd.forward(request,response);
請求包含:rd.include(request,response);
有時一個請求需要多個servlet寫作才能玩成,所以需要一個servlet跳轉(zhuǎn)到另一個servlet魁衙;
——一個請求跨多個servlet报腔,需要使用轉(zhuǎn)發(fā)和包含
——請求轉(zhuǎn)發(fā):由下一個servlet完成響應(yīng)體,當前servlet可設(shè)置響應(yīng)頭纺棺;
——請求包含:有兩個servlet共同完成響應(yīng)體
request域
servlet中三大域?qū)ο螅簉equest榄笙,session,application祷蝌;都有如下方法:
void setAttribute(String name,Object value);
Object getAttribute(String name);
void removeAttribute(String name);
請求轉(zhuǎn)發(fā)和重定向的區(qū)別
A.請求轉(zhuǎn)發(fā)是一個請求一次相應(yīng)茅撞,而重定向是兩次轉(zhuǎn)發(fā)兩次響應(yīng);
B巨朦,請求轉(zhuǎn)發(fā)地址欄不變米丘,而重定向會顯示后一個請求的地址;
C糊啡,請求轉(zhuǎn)發(fā)只能轉(zhuǎn)發(fā)到本項目的其他servlet拄查,二重定向不只能重定向到本項目的servlet,還能重定向到其他項目棚蓄;
D堕扶,請求轉(zhuǎn)發(fā)是服務(wù)器·端行為碍脏;只需給出轉(zhuǎn)發(fā)的servlet路徑,而重定向需給出requestURL,既包含項目名稍算;
請求轉(zhuǎn)發(fā)的效率高典尾,因為是一個請求;
需要地址欄發(fā)生變化糊探,必須使用重定向钾埂;
需要在下一個servlet中獲取request域中的數(shù)據(jù),必須要使用轉(zhuǎn)發(fā)科平;
編碼之響應(yīng)編碼
在使用getWriter()方法之前褥紫,先調(diào)用下面方法:
response.setContentType("text/html;charset=utf-8");
路徑
web.xml中<url-pattern>路徑,叫他servlet路徑瞪慧;