
正文
java超时会话机制代码 java 超时机制实现
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java 页面超时
最简单的方法就是在使用session中的值之前先判断一下取出来的值是否为null,如果为null就跳转到指定页面。或者你也可以捕获那个空指针异常然后再跳转到指定页面
因为程序并不知道session什么时候过期,你只能在取值的时候去判断值是否为空或者捕获空指针异常。在这里我提几个想法吧,我没有验证过,
1. 写一个线程去监控session是否过期,过期了就跳转,不过这样的话,如果很多人访问的话就会产生很多会话,就要开很多线程,似乎不太可取
2.单独写一个类专门用来处理session的存值和取值,然后在方法内部判断是否为空或捕获空指针异常,这样的话只要调用这个类的方法就行了,不用每个地方都进行判断了
相关问答
Q1: java 方法 执行超时处理
java 1.5以上的Future类可以执行超时处理。
jdk1.5自带的并发库中Future类中重要方法包括get()和cancel(),get()获取数据对象,如果数据没有加载,就会阻塞直到取到数据,而 cancel()是取消数据加载。另外一个get(timeout)操作,表示如果在timeout时间内没有取到就失败返回,而不再阻塞。
代码如下:
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import com.sun.corba.se.impl.orbutil.closure.Future;
import com.sun.corba.se.impl.orbutil.threadpool.TimeoutException;
public class ThreadTest {
public static void main(String[] args) throws InterruptedException,
ExecutionException {
final ExecutorService exec = Executors.newFixedThreadPool(1);
CallableString call = new CallableString() {
public String call() throws Exception {
//开始执行耗时操作
Thread.sleep(1000 * 5);
return "线程执行完成.";
}
};
try {
FutureString future = exec.submit(call);
String obj = future.get(1000 * 1, TimeUnit.MILLISECONDS); //任务处理超时时间设为 1 秒
System.out.println("任务成功返回:" + obj);
} catch (TimeoutException ex) {
System.out.println("处理超时啦....");
ex.printStackTrace();
} catch (Exception e) {
System.out.println("处理失败.");
e.printStackTrace();
}
// 关闭线程池
exec.shutdown();
}
}
Q2: 如何通过java代码webservice设置超时时间
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;
}
关于java超时会话机制代码和java 超时机制实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






