超時設置可通過session的[get|set]MaxInactiveInterval方法實現。如:
創新互聯公司服務項目包括宣化網站建設、宣化網站制作、宣化網頁制作以及宣化網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,宣化網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到宣化省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
session
.setMaxInactiveInterval(600);
就是設定session的有效期為10分鐘。
我知道session是存在在服務器的由私人所有的,cookie是存在客戶端的由私人所有的,servletcontext是存在服務器端集體共享的。不明白會出現什么問題。
你獲取系統時間就是了,然后在你的系統里進行分支控制。
如果你怕盜版修改系統時間來使用你的系統,那你就獲取網絡時間,不過得要求客戶服務器聯網。你也可以從客戶安裝之后開始計時,不過這個不合適,只要重啟應用系統的話你的計時就失效了。
在Java中,如果需要設定代碼執行的最長時間,即超時,可以用Java線程池ExecutorService類配合Future接口來實現。 Future接口是Java標準API的一部分,在java.util.concurrent包中。Future接口是Java線程Future模式的實現,可以來進行異步計算。
Future模式可以這樣來描述:我有一個任務,提交給了Future,Future替我完成這個任務。期間我自己可以去做任何想做的事情。一段時間之后,我就便可以從Future那兒取出結果。就相當于下了一張訂貨單,一段時間后可以拿著提訂單來提貨,這期間可以干別的任何事情。其中Future 接口就是訂貨單,真正處理訂單的是Executor類,它根據Future接口的要求來生產產品。
Future接口提供方法來檢測任務是否被執行完,等待任務執行完獲得結果,也可以設置任務執行的超時時間。這個設置超時的方法就是實現Java程序執行超時的關鍵。
程序開始時開始計時,
有個long
time1
=
System。getCurrent()什么的方法吧,
毫秒的
程序結束之前再執行下
long
time2
=
System。getCurrent()
那么你的程序運行時間就是time2-time1
WebService超時設置
1. 服務器端設置超時
在 web.config 的 system.web 里添加如下配置項:
httpRuntime
executionTimeout="30"
/
以上時間單位是秒.
記得要把 web.config 的 debug 模式關閉:
compilation
defaultLanguage="c#"
debug="false"
/
2. 客戶端設置超時
在 WebService 的客戶端代理程序(用 wsdl.exe 生成)里設置 Request 超時時間, 單位是毫秒:
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest wr = (HttpWebRequest)base.GetWebRequest( uri );
wr.Timeout = 30*1000;
return wr;
}
public?static?int?getWorkDays(Date?begin,Date?end){
Calendar?calendar?=?Calendar.getInstance();
int?sum?=?0;
calendar.setTime(begin);
while(calendar.getTime().before(end)){
int?t?=?calendar.get(Calendar.DAY_OF_WEEK);
if(t?!=?Calendar.SUNDAY??t?!=?Calendar.SATURDAY){
sum?++;
}
calendar.add(Calendar.DAY_OF_YEAR,?1);
}
return?sum;
}
這只是個方法,你傳入開始日期和結束日期返回工作日的天數。
你把這個方法放到需要使用的地方,然后在該class上面加上
import?java.util.Calendar;
import?java.util.Date;