重載、覆蓋(重寫)html
重載是類的多態性的表現主要是方法重載,方法名稱相同,參數類型、多少不一樣,返回值能夠相同java
覆蓋(重寫)是把父類的方法作一些修改,名稱、參數、返回類型必須相同。能夠是使用super引出父類;注意:子類的修飾符權限不能小於父類,private的父類方法、final的父類方法都不能被覆蓋,拋出的異常範圍只能更小spring
接口(interface)與抽象類(abstract):類只能繼承一個,接口能夠實現多個,接口屬於特殊的抽象類數組
接口和抽象類的概念不同。接口是對動做的抽象,抽象類是對根源的抽象。
抽象類表示的是,這個對象是什麼。接口表示的是,這個對象能作什麼。好比,男人,女人,這兩個類(若是是類的話……),他們的抽象類是人。說明,他們都是人。
人能夠吃東西,狗也能夠吃東西,你能夠把「吃東西」定義成一個接口,而後讓這些類去實現它.
因此,在高級語言上,一個類只能繼承一個類(抽象類)(正如人不可能同時是生物和非生物),可是能夠實現多個接口(吃飯接口、走路接口)。瀏覽器
抽象類的方法能夠是抽象與非抽象,能夠是公開tomcat
接口的方法必須是公開、抽象、靜態、final安全
String a="s" 、 String c=new String("s") 、new StringBuffer("s")的區別服務器
全部直接賦值的String都是在同一個連接池裏面,引用是相同的 ;而new String("s") 則每次新建一個引用cookie
因此 String b="s" a==b a.equals(b) 都是true ;a==c則是false a.equals(c)則爲true 網絡
這兩種方式都是不可變的,不可以直接拼接。
new StringBuffer("s")的長度是可變的,能夠任意的拼接
collection(類基):接口爲List(有序):實現類爲vector、Set(無序、不一樣)
List與vector的區別是前者效率高,線程不安全,後者相反,是同步的
Map不屬於collection!!
spring的IOC(Inversion of Control,IOC):控制反轉--IOC的思想是:Spring容器來實現這些相互依賴對象的建立、協調工做。所謂依賴注入就是指:在運行期,由外部容器動態地將依賴對象注入到組件中。當spring容器啓動後,spring容器初始化,建立並管理bean對象,以及銷燬它。因此咱們只需從容器直接獲取Bean對象就行,而不用編寫一句代碼來建立bean對象。這種現象就稱做控制反轉,即應用自己不負責依賴對象的建立及維護,依賴對象的建立及維護是由外部容器負責的。這樣控制權就由應用轉移到了外部容器,控制權的轉移就是所謂反轉。
依賴注入主要分爲:接口注入、構造注入、屬性注入(getter、setter:又成爲設值注入)
當爲構造注入時候,此對象的其它對象優先(優先依賴注入)
當爲設值注入時候,優先實例化對象,再實例化所依賴對象(優先被依賴注入的實例),這種簡單、直觀
當設值注入、構造注入共存時候。前者優先,及當前對象優先建立
HttpServletRequest與HttpServletResponse
HttpServletRequest繼承與ServletRequest,能夠使用servlet的方法(doGet、doPost···)
主要方法:getAuthType(); ---返回證實配置的名字用於保護servlet
getContextPath();---返回部分請求的uri指出上下文的對應關係
getCookies();---返回一個數組包涵全部客戶端發送的請求cookie對象
getDateHeader(java.lang.String name);--返回指定的請求表頭值,並用長整型描繪這個日期對象
getHeader(java.lang.String name);--返回指定的請求表頭文件爲字符型
getHeaderNames();--返回這個請求容器全部表頭文件名用枚舉的方法
getHeaders(java.lang.String name);--返回指定文件頭的全部值用一個字符型對象的枚舉
getIntHeader(java.lang.String name);--返回指定請求文件的值用整型
getMethod();--返回處理這個請求Http方法的名字
getPathInfo();--當客戶端發送一個url請求的時候返回與其相關聯的額外的信息路徑
getPathTranslated();--在servlet名字後返回一些擴展的路徑信息,但在query string 前轉化爲他真實的地址
getQueryString();--返回query string ,在包含在這個請求url後
getRemoteUser();--返回用戶使用這個請求的註冊,若是這個用戶已經經過驗證,或者沒有經過驗證,返回null
getRequestedSessionId();--返回指定用戶的session Id
getRequestURI();--返回部分這個請求的url從這個協議的名字 到這個HTTP請求的第一行 query string
getRequestURL();--在客戶端請求時從新創建url
getServletPath();--返回一部分這個請求的url調用servlet
getSession();--返回與當前請求有關聯的session,若是這個請求沒有session就建立一個
getSession(boolean create);---返回與這個請求有關聯的HttpSession,若沒有session就建立他爲真並返回新的session
getUserPrincipal();--返回一個java.security.Principal類型的對象敖漢當前經過驗證的用戶名稱
isReqeustedSessionIdFromCookie();--檢查這個請求的session ID是否來自一個cookie
isRequestedSessionIdFromURL();--檢查這個session Id 的請求是否來自一個部分請求的URL
isRequestedSessionIdValid();--檢查請求的session ID 是否有效
isUserInRole(java.lang.String role);--返回一個布爾值標誌用來判斷經過驗證的用戶是否包涵在制定的角色中
下面開始HttpServletResponse(對象能夠向客戶端發送三種類型的數據:a.響應頭b.狀態碼c.數據)
常見應用:
a.使用OutputStream向客戶端寫入中文: String data = "中國"; OutputStream stream = response.getOutputStream();//獲取一個向Response對象寫入數據的流,當tomcat服務器進行響應的時候,會將Response中的數據寫給瀏覽器 stream.write(data.getBytes("UTF-8")); //此時在html頁面會出現亂碼,這是由於:服務器將"中國"按照UTF-8碼錶進行編碼,獲得對應的碼值假設是98,99,服務器將碼值發送給瀏覽器。瀏覽器默認按照GB2312進行解碼,在GB2312碼錶中對應的字符已不是"中國" 正確代碼以下: response.setHeader("Content-type","text/html;charset=UTF-8");//向瀏覽器發送一個響應頭,設置瀏覽器的解碼方式爲UTF-8 String data = "中國"; OutputStream stream = response.getOutputStream(); stream.write(data.getBytes("UTF-8"));b.使用Writer向客戶端寫入中文: PrintWriter writer = response.getWriter(); writer.write("中國");//一樣會出現亂碼,這是由於咱們將"中國"寫入response對象時,tomcat服務器爲了將數據經過網絡傳輸給瀏覽器,必須進行編碼,因爲沒有指定編碼方式,默認採用ISO8859-1, 當瀏覽器接收到數據後,根據GBK解碼必然出現亂碼 正確代碼以下: response.setCharacterEncoding("UTF_8");//設置Response的編碼方式爲UTF-8 response.setHeader("Content-type","text/html;charset=UTF-8");//向瀏覽器發送一個響應頭,設置瀏覽器的解碼方式爲UTF-8,其實設置了本句,也默認設置了Response的編碼方式爲UTF-8,可是開發中最好兩句結合起來使用 //response.setContentType("text/html;charset=UTF-8");同上句代碼做用同樣 PrintWriter writer = response.getWriter(); writer.write("中國");c.使用Response實現文件下載: String path = this.getServletContext.getRealPath(「/中國.jpg」); String fileName = path.subString(path.lastIndexOf(「\\」)); Response.setHeader(「content-disposition」,」attachment;filename」+URLENcode r.encode(fileName,」UTF-8」));//設置響應頭,告訴瀏覽器,該響應是下載響應,若是文件名包含中文,必須使用URL編碼……對文件進行讀寫