一看這幾個(gè)答案就知道各位沒(méi)做過(guò)類似功能,
古丈ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
第一、購(gòu)買(mǎi)短信貓(一種收發(fā)短信的設(shè)備。里邊要插上手機(jī)卡)
第二、按短信貓?zhí)峁┑慕涌谧龆伍_(kāi)發(fā)。。
就這樣。很簡(jiǎn)單。。。發(fā)短信就發(fā)到手機(jī)號(hào)碼上。。。做個(gè)監(jiān)聽(tīng)就可以。來(lái)消息了自動(dòng)提示。
java里的攔截器是動(dòng)態(tài)攔截Action調(diào)用的對(duì)象,它提供了一種機(jī)制可以使開(kāi)發(fā)者在一個(gè)Action執(zhí)行的前后執(zhí)行一段代碼,也可以在一個(gè)Action
執(zhí)行前阻止其執(zhí)行,同時(shí)也提供了一種可以提取Action中可重用部分代碼的方式。在AOP中,攔截器用于在某個(gè)方法或者字段被訪問(wèn)之前,進(jìn)行攔截
然后再之前或者之后加入某些操作。目前,我們需要掌握的主要是Spring的攔截器,Struts2的攔截器不用深究,知道即可。
2,攔截器的原理
大部分時(shí)候,攔截器方法都是通過(guò)代理的方式來(lái)調(diào)用的。Struts2的攔截器實(shí)現(xiàn)相對(duì)簡(jiǎn)單。當(dāng)請(qǐng)求到達(dá)Struts2的ServletDispatcher時(shí),Struts2
會(huì)查找配置文件,并根據(jù)配置實(shí)例化相對(duì)的攔截器對(duì)象,然后串成一個(gè)列表(List),最后一個(gè)一個(gè)的調(diào)用列表中的攔截器。Struts2的攔截器是可
插拔的,攔截器是AOP的一個(gè)實(shí)現(xiàn)。Struts2攔截器棧就是將攔截器按一定的順序連接成一條鏈。在訪問(wèn)被攔截的方法或者字段時(shí),Struts2攔截器鏈
中的攔截器就會(huì)按照之前定義的順序進(jìn)行調(diào)用。
3,自定義攔截器的步驟
第一步:自定義一個(gè)實(shí)現(xiàn)了Interceptor接口的類,或者繼承抽象類AbstractInterceptor。
第二步:在配置文件中注冊(cè)定義的攔截器。
第三步:在需要使用Action中引用上述定義的攔截器,為了方便也可以將攔截器定義為默認(rèn)的攔截器,這樣在不加特殊說(shuō)明的情況下,所有的
Action都被這個(gè)攔截器攔截。
4,過(guò)濾器與攔截器的區(qū)別
過(guò)濾器可以簡(jiǎn)單的理解為“取你所想取”,過(guò)濾器關(guān)注的是web請(qǐng)求;攔截器可以簡(jiǎn)單的理解為“拒你所想拒”,攔截器關(guān)注的是方法調(diào)用,比如攔截
敏感詞匯。
4.1,攔截器是基于java反射機(jī)制來(lái)實(shí)現(xiàn)的,而過(guò)濾器是基于函數(shù)回調(diào)來(lái)實(shí)現(xiàn)的。(有人說(shuō),攔截器是基于動(dòng)態(tài)代理來(lái)實(shí)現(xiàn)的)
4.2,攔截器不依賴servlet容器,過(guò)濾器依賴于servlet容器。
4.3,攔截器只對(duì)Action起作用,過(guò)濾器可以對(duì)所有請(qǐng)求起作用。
4.4,攔截器可以訪問(wèn)Action上下文和值棧中的對(duì)象,過(guò)濾器不能。
4.5,在Action的生命周期中,攔截器可以多次調(diào)用,而過(guò)濾器只能在容器初始化時(shí)調(diào)用一次。
5,Spring攔截器
MapString,Integer?routes?=?new?HashMapString,?Integer();
//struts2中的ServletActionContext;
//使用session保存用戶的瀏覽記錄
ServletActionContext.getRequest().getSession().setAttribute("record",routes);
//訪問(wèn)路徑
String?route?=?"./index.html";
if?(routes.containsKey(route)){
routes.put(route,routes.get("")+1);
}else{
routes.put(route,1);
}