通過效驗(yàn)后 將用戶基礎(chǔ)信息,權(quán)限 放在 SESSION里面
SESSION回話信息失效,立即要求重新登錄
每次效驗(yàn)用戶,直接用當(dāng)前回話讀取即可。
HttpURLConnection 有個(gè) setReadTimeout 的方法可以實(shí)現(xiàn)你的需求。
public static String doGet(String HTTP_URL, Object object) {
BufferedReader reader = null;
String result = null;
StringBuffer httpUrl = new StringBuffer(HTTP_URL);
StringBuffer sbf = new StringBuffer();
HttpURLConnection connection = null;
try {
System.out.println(httpUrl.toString());
URL url = new URL(httpUrl.toString());
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
// 請求方式設(shè)置 POST
connection.setRequestMethod("GET");
// 設(shè)置維持長連接
connection.setRequestProperty("Connection", "Keep-Alive");
// 設(shè)置文件字符集:
connection.setRequestProperty("Charset", "UTF-8");
//根據(jù)需求設(shè)置讀超時(shí)的時(shí)間
connection.setReadTimeout(50);
// 開始連接請求
connection.connect();
OutputStream out = connection.getOutputStream();
out.write((object.toString()).getBytes());
out.flush();
out.close();
if (connection.getResponseCode() == 200) {
System.out.println("連接成功,傳送數(shù)據(jù)...");
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
if (result.equals("1")) {
return "1";
} else if(result.equals("0")) {
return "0";
} else {
return result;
}
} else {
System.out.println("連接失敗,錯(cuò)誤代碼:" + connection.getResponseCode());
}
} catch (Exception e) {
if(e instanceof SocketTimeoutException) {
if("Read timed out".equals(e.getMessage()) && connection != null && connection.getDoOutput()) {
//TODO 只請求不需要響應(yīng)
return null;
}
}
e.printStackTrace();
}
return null;
}上面的代碼有些問題,并沒能真正結(jié)束線程。稍微改下就可以了
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println(Thread.currentThread());
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
**return;**
}
System.out.println("任務(wù)繼續(xù)執(zhí)行..........");
}
});
System.out.println(Thread.currentThread());
thread.start();
TimeUnit.SECONDS.timedJoin(thread, 3);
if (thread.isAlive()) {
thread.interrupt();
throw new TimeoutException("Thread did not finish within timeout");
}
如果,不加return,將會輸出"任務(wù)繼續(xù)執(zhí)行.........."
idea是不提供刷新mybatis的xml文件的功能的。如果確實(shí)需要這樣的一個(gè)功能,可以自己寫一個(gè)監(jiān)控xml文件變化的線程,然后監(jiān)測到變化后重新加載xml文件。
可以參考: Mybatis熱部署加載Mapper.xml
ws 是websocket 的協(xié)議標(biāo)志,還有wss 是websocket 加一個(gè)安全套接字,
blob 是二進(jìn)制的說明傳輸類型,
有啥不懂查這個(gè)https://developer.mozilla.org...
假設(shè)你的服務(wù)器是tomcat,那么在阿里云虛擬主機(jī)上部署兩個(gè)tomcat,注意端口。再用Apache根據(jù)域名做分發(fā)就可以了。
webSocket和ajax掃碼有什么區(qū)別么?
productList 返回的是一個(gè) Page 對象,Page 對象的聲明:
可見 Page 繼承自 ArrayList,所以 Page 對象是一個(gè) List。
再來看看 PageInfo 的構(gòu)造函數(shù)的源碼:
public PageInfo(List<T> list) {
this(list, 8);
}
public PageInfo(List<T> list, int navigatePages) {
if (list instanceof Page) {
Page page = (Page) list;
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.pages = page.getPages();
this.list = page;
this.size = page.size();
this.total = page.getTotal();
if (this.size == 0) {
this.startRow = 0;
this.endRow = 0;
} else {
this.startRow = page.getStartRow() + 1;
this.endRow = this.startRow - 1 + this.size;
}
} else if (list instanceof Collection) {
this.pageNum = 1;
this.pageSize = list.size();
this.pages = this.pageSize > 0 ? 1 : 0;
this.list = list;
this.size = list.size();
this.total = list.size();
this.startRow = 0;
this.endRow = list.size() > 0 ? list.size() - 1 : 0;
}
...
}
關(guān)注第一個(gè) if (list instanceof Page),可見如果當(dāng)傳入的 List 對象是一個(gè) Page 的時(shí)候,可以直接通過這個(gè) Page 對象來獲得相關(guān)的分頁信息。所以,這段代碼,作者的意思應(yīng)該是先通過 productList 這個(gè) Page 對象來設(shè)置 PageInfo 的分頁信息,然后再通過 setList 方法來改變具體的數(shù)據(jù),從而 使得 PageInfo 中既有原來的分頁信息,然后數(shù)據(jù)又是 VO 對象。
你應(yīng)該是在同一個(gè)控制器寫了一個(gè)新的方法 原有的資源控制器覆蓋了你新寫的路由
每次提交完問題, 總是就可以自己找到解決方案, 是運(yùn)氣好嗎? 折磨了我三天的問題終于解決了, 而導(dǎo)致這個(gè)問題的原因居然是spring boot(1.3.x)與cas(4.2.x)版本不兼容導(dǎo)致, 解決方案很簡單, 升級spring boot版本到1.5.x, cas不用指定版本號(會根據(jù)spring-boot-starter-parent自動(dòng)適應(yīng))
python 的fabric 了解一下
private transient Object[] elementData;
這是list源碼里面的方法 真正保留數(shù)據(jù)的數(shù)組在這里面 Map<String,Object> 是我mapper映射出來的第一級的數(shù)據(jù)
存放在此 List<User> 只是用User對這個(gè)類型進(jìn)行了一下形式上的轉(zhuǎn)換而已 并沒有改變真正保留的數(shù)據(jù)
date format 指定下格式
@Column(name = "startTime")
@DateTimeFormat(iso = DateTimeFormatter.ISO_LOCAL_DATE_TIME)
@JsonFormat(pattern = "YYYY-MM-dd HH:mm")
private LocalDateTime startTime;是不是因?yàn)閜ath或者domain不一樣
估計(jì)你是需要這個(gè) 如果 Select 的綁定值為對象類型,請務(wù)必指定 value-key 作為它的唯一性標(biāo)識。
將node_modules 和dist中的npm文件夾 刪除, 重新安裝運(yùn)行
不輸入的話不就是null了嗎?
因?yàn)樗恢滥氵@個(gè)類的實(shí)例化究竟會不會依賴外部因素
很多類的創(chuàng)建本質(zhì)上是保存一份當(dāng)前某些變量的狀態(tài)從而得到新的狀態(tài)
如果在定義構(gòu)造方法后不取消默認(rèn)的空參構(gòu)造器,那么一旦類本來需要根據(jù)外部狀態(tài)來初始化,默認(rèn)的空參構(gòu)造器都會使得這些狀態(tài)丟失。
比如說
class A {
private String a;
A(String s) {
a = s;
}
}
對于上面這個(gè)類,構(gòu)造方法中只是簡單的保存一個(gè)外部狀態(tài),其他方法會用到 a ,如果用空參構(gòu)造器實(shí)例化類那么很顯然 a 永遠(yuǎn)是空的,除非你還為 a 設(shè)置了 setter ,但那就沒有了 “這個(gè)類的實(shí)例化依賴于這個(gè)狀態(tài)”的語義。
何況更多的時(shí)候,在構(gòu)造器中拿到諸如 a 之類的變量后就會開始使用(比如截取,計(jì)算……),那就會導(dǎo)致實(shí)例化時(shí)就空指針了。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(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ù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。