cdn 就行 jqury bootstrap這些都有
拿tomcat里的request來(lái)舉例,
https://tomcat.apache.org/tom...
tomcat里的是具體實(shí)現(xiàn),而servlet的request僅僅是接口而已,正如你題目中所說(shuō)的規(guī)范。
用netty 實(shí)現(xiàn) servlet規(guī)范,可以看看這個(gè)project:https://github.com/bigpuritz/...
可以使用Filter, 或Interceptor
設(shè)置系統(tǒng)屬性:
System.setProperty ("jsse.enableSNIExtension", "false")
如果是tomcat,則catalina.sh增加:-Djsse.enableSNIExtension=false
首先我要說(shuō)下target和currentTarget的區(qū)別。
e.target是返回觸發(fā)事件的對(duì)象 e.currentTarget返回的是綁定事件的對(duì)象。
認(rèn)真看這段話(huà):
通常情況下target和currentTarget是一致的,我們只要使用target即可,但有一種情況必須區(qū)分這兩者的關(guān)系,那就是在父子嵌套的關(guān)系中,父元素綁定了事件,單擊了子元素(根據(jù)事件流,在不阻止事件流的前提下他會(huì)傳遞至父元素,導(dǎo)致父元素的事件處理函數(shù)執(zhí)行),這時(shí)候currentTarget指向的是父元素,因?yàn)樗墙壎ㄊ录膶?duì)象,而target指向了子元素,因?yàn)樗怯|發(fā)事件的那個(gè)具體對(duì)象 。
在你的第一種情況中,可能觸發(fā)這個(gè)事件的并非是這個(gè)子元素。所以也就沒(méi)有返回你想要的那個(gè)target。
而在你的第二種情況中,可能恰巧觸發(fā)這個(gè)事件的就是含有data-name的這個(gè)text標(biāo)簽,所以也就返回了你想看到的那個(gè)target
時(shí)間是LogEvent創(chuàng)建時(shí)間, 多線(xiàn)程時(shí),寫(xiě)入的順序可能與事件的創(chuàng)建時(shí)間不一致.
下面是我寫(xiě)的一個(gè)測(cè)試程序
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
public class LogTest {
final Log log = LogFactory.getLog(this.getClass());
Object o = new Object() {
public String toString() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "this is slow! " + System.currentTimeMillis();
}
};
@Test
public void testFIFO() throws InterruptedException {
new Thread() {
public void run() {
log.info(o);
}
}.start();
Thread.sleep(100);
new Thread() {
public void run() {
log.info("this is fast! " + System.currentTimeMillis());
}
}.start();
Thread.sleep(2000);
}
@Test
public void testFILO() throws InterruptedException {
new Thread() {
public void run() {
log.info(o.toString());
}
}.start();
Thread.sleep(100);
new Thread() {
public void run() {
log.info("this is fast! " + System.currentTimeMillis());
}
}.start();
Thread.sleep(2000);
}
}
這里用的是commons-logging 來(lái)間接使用Log4j. 原理上是一樣的
輸出如下:
FIFO
INFO 2018-03-02 12:43:26,846 LogTest$2:run - this is slow! 1519965807848
INFO 2018-03-02 12:43:26,946 LogTest$3:run - this is fast! 1519965806946
FILO
INFO 2018-03-02 12:43:29,048 LogTest$5:run - this is fast! 1519965809048
INFO 2018-03-02 12:43:29,948 LogTest$4:run - this is slow! 1519965809948
第一個(gè)測(cè)試和第二個(gè)不同在于一個(gè)(FILO)是 log.info(o.toString());, 一個(gè)(FIFO)是log.info(o);
我故意把toString方法變慢. 對(duì)比兩個(gè)結(jié)果, 可以看到發(fā)生時(shí)間和寫(xiě)出時(shí)間的差異.
locals=6,args(1個(gè)),short x(1個(gè)),double y(2個(gè)),double z(2個(gè))
dstore 4意思是從棧頂彈出2個(gè)字的值,因?yàn)槭莇型的,并把結(jié)果賦給第5和第6個(gè)local位置。
MD5算法作為一種散列(Hash)算法,本身是不能逆推的,但是可以通過(guò)大量的猜測(cè)正推進(jìn)行暴力破解,所謂詞典就是把算過(guò)一遍的對(duì)應(yīng)關(guān)系存下來(lái),之后就不用再?lài)L試這一部分了。
但是有一個(gè)很重要的問(wèn)題,散列算法輸入的長(zhǎng)度可以是無(wú)限的,所以輸入和輸并出不是一一對(duì)應(yīng)的,理論上一個(gè)MD5結(jié)果可以對(duì)應(yīng)無(wú)窮多個(gè)輸入,這導(dǎo)致并不能做到真正的破解。
而這個(gè)問(wèn)題在一些特定應(yīng)用場(chǎng)景下,通過(guò)加入一些限制是可以解決的,比如登錄密碼,通過(guò)限定長(zhǎng)度范圍和字符范圍,是可以得出有限甚至唯一解的。
綜上,MD5在某些特定應(yīng)用場(chǎng)景下,如果不考慮成本,是可以“反推”出來(lái)的。
什么叫完整的單元測(cè)試,所謂單元測(cè)試就是測(cè)試一個(gè)單元的,和你微不微服務(wù)一點(diǎn)關(guān)系都沒(méi)有。單元的大小不一定,但是一般不會(huì)有多大。
對(duì)于這種外部接口的單元測(cè)試,通常是自己mock一些結(jié)果,成功的、失敗的、甚至是外部接口直接炸了的,測(cè)試你這個(gè)單元在面對(duì)各種可以預(yù)料到的情況下能否按照你的期待情況下運(yùn)行。
追加到url后面就行了:
http://api/path/?username=adm...
-------沒(méi)注意是post請(qǐng)求, 那就轉(zhuǎn)成字典吧--------
import urlparse
data="username=admin&password=123123&template9=&finnger10=&finnger9=&template10=&login_type=pwd&client_language=zh-cn"
params = dict([(k,v[0]) for k,v in urlparse.parse_qs(data).items()])
可以用 httpClient 這個(gè) java 庫(kù)寫(xiě)測(cè)試程序。
可以用 python 和 shell 寫(xiě)自動(dòng)化測(cè)試腳本
can2 = JSON.stringify(can2);
can3 = JSON.stringify(can3);
can4 = JSON.stringify(can4);
layout_str = can2.substring(0, can2.length - 1) + ',' + can3.substring(1, can3.length - 1)+','+ can4.substring(1, can4.length);
得到了想要的結(jié)果
[{"type":2,"enabled":1,"channel_list":[{"channel_id":"","template":"15"},{"channel_id":"","template":"17"},{"channel_id":"","template":"14"},{"channel_id":"","template":"16"},{"channel_id":"","template":"14"}]},{"type":2,"enabled":1,"channel_list":[{"channel_id":"","template":"15"},{"channel_id":"","template":"17"},{"channel_id":"","template":"14"},{"channel_id":"","template":"16"},{"channel_id":"","template":"14"}]},{"type":3,"enabled":1,"channel_list":[{"channel_id":"1091991"},{"channel_id":"1091993"}]}]
但是剛開(kāi)始
can2 = JSON.stringify(can2);
can3 = JSON.stringify(can3);
can4 = JSON.stringify(can4);
console.log(can2+','+ can3+','+ can4);
結(jié)果
[{"type":2,"enabled":1,"channel_list":[{"channel_id":"","template":"15"},{"channel_id":"","template":"17"},{"channel_id":"","template":"14"},{"channel_id":"","template":"16"},{"channel_id":"","template":"14"}]}],[{"type":2,"enabled":1,"channel_list":[{"channel_id":"","template":"15"},{"channel_id":"","template":"17"},{"channel_id":"","template":"14"},{"channel_id":"","template":"16"},{"channel_id":"","template":"14"}]}],[{"type":3,"enabled":1,"channel_list":[{"channel_id":"1091991"},{"channel_id":"1091993"}]}]
沒(méi)想到好辦法,然后就用截取字符串的辦法了部分請(qǐng)求不到 有幾種情況:
不管哪種,你倒是把回復(fù)的狀態(tài)碼/錯(cuò)誤信息貼一下啊。
1. 授權(quán)
GRANT ALL PRIVILEGES ON shixiseng.* TO 'root'@'localhost' IDENTIFIED BY '1234567' WITH GRANT OPTION;
2. 刷新
FLUSH PRIVILEGES;
此處你得注意一點(diǎn),你的hosts文件里面有沒(méi)有把127.0.0.1指向localhost
redirect和forward是不同的。redirect是服務(wù)端告訴客戶(hù)端,你要訪(fǎng)問(wèn)下一個(gè)鏈接,這個(gè)時(shí)候如果不是把參數(shù)放在session等區(qū)域是不能保存信息的,等于這個(gè)時(shí)候如果要傳遞token,要么把token放在url上redirect;要么用服務(wù)器端的一個(gè)地方保存一下這個(gè)token,一般是session,看你的需求,使用redirect之后,才能訪(fǎng)問(wèn)到token。
linux系統(tǒng)中很重要的一點(diǎn)就是權(quán)限,檢查一下你的應(yīng)用用戶(hù)是不是有這個(gè)路徑的寫(xiě)權(quán)限
謝邀~
沒(méi)太懂你的問(wèn)題。你只是想把編輯時(shí)的Sql替換下?那直接用編輯器替換功能,找到要替換的標(biāo)題,替換成title即可。(可能是我想簡(jiǎn)單了)
sheet不用創(chuàng)建新的,
查詢(xún)也不要一次查出來(lái).
應(yīng)該是:
查6w,寫(xiě)一次sheet,
查6w,寫(xiě)一次sheet,
結(jié)束,發(fā)送
干嘛要用elasticsearch?。坑胠ucene想怎么封裝怎么封裝,看這篇帖子
https://segmentfault.com/a/11... 支持全文搜索,如果不要全文的稍微改下就是了
首先,鑒于jQuery是命令式的庫(kù),所以建議你把需求一條條列出來(lái),這樣就知道每一步該干嘛了,以及做進(jìn)一步的優(yōu)化。那么這里就有:
class='cur'
<p class="li-text">文字</p>插進(jìn)<div class='text'></div>
這里會(huì)發(fā)現(xiàn)題主的敘述很亂,這一般也是為什么寫(xiě)不出來(lái)代碼的原因。這步來(lái)分析下上一步的整理出來(lái)的需求:
$(this)可以抓到當(dāng)前事件發(fā)生的元素,加class就不用說(shuō)了吧$(this).remove()自刪除北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。