一:Filter的使用html
1.Filter是由Tomcat啓動時建立。接口包含三個方法。java
1.void init(FilterConfig filterConfig) 過濾器對象建立的時候調用的方法 2.void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 執行過濾的方法 3.void destory() 過濾器銷燬的時候調用的方法
2.Filter過濾器的開發步驟ajax
第一步:新建一個普通java類,實現Filter接口; 第二步:根據提示重寫Filter接口的3個方法; 第三步:在這個類上面經過註解的方式配置這個Filter; 註解@WebFilter:配置Filter的註解,這個註解有兩個參數; filterName:設置過濾器的名稱; urlPatterns:配置這個過濾器要攔截的資源的路徑; 第四步:在doFilter()方法中,書寫過濾的業務邏輯; chain.doFilter()方法放行;
3.過濾器的執行流程json
1.客戶端(瀏覽器)的HttpRequest到達Servlet以前,被Filter的doFilter()方法攔截; 2.根據須要,咱們能夠獲取或者修改HttpRequest對象中的數據; 3.在這個請求響應給瀏覽器以前,Filter攔截了HttpResponse對象; 4.根據須要,咱們能夠獲取或者修改HttpReponse對象中的數據; 5.最後,由doFilter中的chain決定是否讓這個請求經過;
注意:多個Filter的執行順序,Filter默認是按照字母順序執行的,從而造成一個執行鏈條。數組
4.Filter的映射路徑瀏覽器
1.精確匹配:匹配指定的urlpattern; 1.urlPatterns = "/index.jsp" 攔截對index.jsp頁面的請求 2.urlPatterns = "/loginServlet" 攔截對loginServlet的請求 3.urlPatterns = "/a.jpg" 攔截對a.jsp的請求 2.模糊匹配:匹配複合條件的一類路徑; 1.urlPatterns = "/*" 對全部的請求都進行攔截 2.urlPatterns = "/xxx/*" 對映射路徑中/xxx下的全部資源進行攔截 3.urlPatterns = "*.xxx" 對指定後綴的請求進行攔截 3.多路徑匹配:一個filter匹配多個資源;
二:Ajax的使用服務器
1.JS原生的Ajax請求的思路jsp
1.建立Ajax引擎對象--XMLHttpRequest對象; 2.爲XMLHttpRequest對象綁定監聽(監聽服務器,將數據響應給引擎); 3.綁定提交地址; 4.發送請求; 5.接收響應數據;
2.Jquery的Ajax請求思路async
1.GET請求 格式:$.get(url,[data],[callback],[type]) 參數說明:
url : 請求地址函數
data : 發送給服務器端的請求參數,格式:方式一:key=value&key=value 方式二:{key:value,key:value...} callback :回調函數:當請求成功後觸發的函數 type : 返回參數類型:取值能夠是xml, html, script, json, text, _defaul等 2.POST請求 格式: $.post(url, [data], [callback], [type]) 參數說明:
url : 請求地址
data : 發送給服務器端的請求參數,格式能夠是key = value,也能夠是JS對象 callback :回調函數:當請求成功後觸發的函數 type : 返回參數類型:取值能夠是xml, html, script, json, text, _defaul等 3.AJax請求 格式: $.ajax({settings}) url,async,data,type,dataType,success,error 參數說明:
三:JSON數據格式
注意:
1.JSON數據的key值:字符串類型,必須加雙引號; 2.JSON數據的value值:任意類型,若是是字符串則必須加雙引號;
總結:
1.java對象 ----->json對象
{"id":1,"studentAge":10,"studentName":"張三"}
2.轉換List集合 ----> JSON數組: [ { "id": 1,"studentAge": 10, "studentName": "張三"}, {"id": 2, "studentAge": 12,"studentName": "李四"} ] 3.轉換複雜對象-----JSON混合數據類型: { "course": { "code": "en", "courseName": "英語", "id": 1 }, "id": 2, "studentAge": 12, "studentName": "李四" }
注意:複雜對象也能夠用Map<String,Object>集合來拼接;
結果:{"code":"1001","stu":{"id":2,"studentAge":12,"studentName":"李四"}}