來源:weixin_42010394 發(fā)布時間:2018-11-14 10:59:13 閱讀量:1372
一 Servlet
1.1通過實現接口方法實現Servlet
public class AServlet implements Servlet{
//銷毀時被調用
public void destroy() {
System.out.println("我銷毀了");
}
//獲取Servlet的配置信息
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
//獲取Servlet的介紹信息
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
//創(chuàng)建時被調用
public void init(ServletConfig arg0) throws ServletException {
System.out.println("我創(chuàng)建了");
}
//請求時被調用
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("我處理請求");
}
}
1.2 ServletConfig
ServletConfig表示Servlet的配置信息
常用方法:
String getServletName():獲取Servlet的名稱
ServletContext getServletContext():獲取Servlet的上下文(三大域,詳情見后)
Enumeration getInitParameterNames():獲取所有初始化參數的名稱
String getInitParameter(String name):根據配置名稱獲取對應的值
引入Enumeration,這個類似于Iterator(迭代器),兩個方法,boolean hasMoreElements(); E nextElemenet()
1.3 ServletContext
Servlet的上下文,用來共享數據/傳遞數據
服務端三大域:ServletContext(或者application)
Request
Session
介紹幾種方法:
Object getAttribute(String name):獲取指定name的值
void setAttribute(String name,Object obj):往域中存指定名稱的值
void removeArrtibute(String name):去域中指定的值
String getContextPath():獲取當前項目的路徑
String getRealPath():獲取真實路徑
Enumeration getInitParameterNames():獲取所有初始化參數的名稱
String getInitParameter(String name):根據配置名稱獲取對應的值
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext sc=this.getServletContext();
sc.setAttribute("name", "Tom");
System.out.println(sc.getAttribute("name"));
System.out.println(sc.getContextPath());
System.out.println(sc.getRealPath("User.jsp"));
System.out.println("-------------------------------");
Enumeration<String> enu = sc.getAttributeNames();
while(enu.hasMoreElements()){
String text = enu.nextElement();
System.out.println(text+"====="+sc.getInitParameter(text));
}
}
1.4 HttpServlet
與協(xié)議有關,在Http下運行
注意:Servlet是單例的,可以會出現線程安全問題;盡量不要創(chuàng)建有狀態(tài)的成員變量,如果非要創(chuàng)建,一定要保證只讀
二 服務端響應
HttpServletResponse
2.1 與狀態(tài)碼相關
void setStatus(int sc):向客戶端返回響應的狀態(tài)碼
void setStatus(int sc,String name):返回狀態(tài)碼和服務端提示信息
void sendError(int sc):返回錯誤碼
void sendError(int sc,String name):返回錯誤狀態(tài)碼和提示信息
狀態(tài)碼簡介:1代表請求未完成;2代表成功;3表示中轉;4表示客戶端錯誤;5表示服務端內部錯誤
2.2 與響應頭相關
void setHeader(String name,String value):設置單值響應頭
void addHeader(String name,String value):添加多值響應頭信息
2.3 服務端響應內容相關
PrintWriter getWriter():返回字符輸出流,向客戶端寫數據
ServletOutputStream getOutputStream():返回字節(jié)輸出流
三 客服端請求
HttpServletRequest:封裝了客戶端的請求信息,如請求URL,請求協(xié)議,請求參數
String getMethod():獲取請求方式
String getLocalAddr():獲取本地路徑
String getLocalName():獲取本地名稱
String getRemoteAddr():獲取遠程請求地址
String getRemoteUser():獲取遠程請求用戶
String getRemoteHost():獲取遠程主機
int getRemotePort():獲取遠程端口號
int getLocalPort():獲取本地端口號
String getProtocol():獲取協(xié)議版本
String getScheme():獲取協(xié)議
String getQueryString():獲取請求參數
String getRequestURI():獲取請求資源
StringBuffer getRequestURL():獲取請求路徑
URI和URL的區(qū)別?
URI:統(tǒng)一資源標識符,標志網絡上的一個資源,如圖片,視頻音頻等
URL:統(tǒng)一資源定位符,專制網址
---------------------