AsyncContext源码翻译
来源:互联网 发布:shopnc b2b2c 源码 编辑:程序博客网 时间:2024/06/01 20:28
package javax.servlet;/** * 目的:异步操作执行环境的初始化 * * <p>调用{@link ServletRequest#startAsync()}或{@link ServletRequest#startAsync()} * 去创建AsyncContext对象并初始化。这些方法的重复调用将返回相同的AsyncContext实例,重新初始化为为佳。 * * <p>异步操作超时,容器将经过以下步骤: * a.ServletRequest异步操作初始化时,注册的所有{@link AsyncListener}实例,这些实例都将调用 * {@link AsyncListener#onTimeout onTimeout}方法。 * b.如果没有一个监听器调用{@link #complete}或{@link #dispatch}方法时,将执行一个错误调度 * 状态码,这相当于HttpServletResponse.SC_INTERNAL_SERVER_ERROR。 * c.如果没有找到错误页面或错误页面没有调用{@link #complete}或{@link #dispatch}时,将调用 * {@link #complete} * @author TCM * @create 2017年10月25日上午10:04:49 * @since Servlet 3.0 */public interface AsyncContext { /** * 获取该环境对应的请求 * 即:请求启动异步时,生成的AsyncContext,该环境对应的请求 * @exception IllegalStateException */ public ServletRequest getRequest(); public ServletResponse getResponse(); /** * 检查AsyncContext初始化时,对应的原始请求和响应 * * 在过滤器outbound时调用,之后请求进入异步模式。 */ public boolean hasOriginalRequestAndResponse(); /** * 目的:AsyncContext调度请求和响应到servlet容器中,进行转发等操作 * @throws IllegalStateException * @see ServletRequest#getDispatcherType */ public void dispatch(); public void dispatch(String path); public void dispatch(ServletContext context, String path); /** * AsyncContext完成异步操作,关闭响应。 * 响应完成后,监听器调用{@link AsyncListener#onComplete(AsyncEvent) onComplete} */ public void complete(); /** * 容器从线程池中调度一个线程去启动。 * @param run 异步操作手 */ public void start(Runnable run); /** * {@link ServletRequest#startAsync}调用时,注册一个异步监听器。 * * 该监听器监听{@link AsyncEvent}事件,异步环:成功完成、超时、错误等。 * @param listener * @throws IllegalStateException */ public void addListener(AsyncListener listener); public void addListener(AsyncListener listener, ServletRequest servletRequest, ServletResponse servletResponse); public <T extends AsyncListener> T createListener(Class<T> clazz) throws ServletException; /** * 为AsyncContext设置超时时间,单位:毫秒 */ public void setTimeout(long timeout); public long getTimeout(); static final String ASYNC_REQUEST_URI = "javax.servlet.async.request_uri"; static final String ASYNC_CONTEXT_PATH = "javax.servlet.async.context_path"; static final String ASYNC_PATH_INFO = "javax.servlet.async.path_info"; static final String ASYNC_SERVLET_PATH = "javax.servlet.async.servlet_path"; static final String ASYNC_QUERY_STRING = "javax.servlet.async.query_string";}
阅读全文
0 0
- AsyncContext源码翻译
- AsyncContext简介
- AsyncContext简介
- Interface AsyncContext
- AsyncContext简介
- servlet3学习-AsyncContext
- javax.servlet.AsyncContext
- Servlet-异步执行AsyncContext
- tasklet源码注释翻译
- AsyncTask源码翻译
- TextUtils源码翻译
- Handler源码翻译
- Serializable源码翻译
- @Generated源码翻译
- @PostConstruct、@PreDestroy源码翻译
- @ManagedBean源码翻译
- @Resource、@Resources源码翻译
- @Target、ElementType源码翻译
- ImageLoader工具类结合二次采样
- 仿购物车二级列表Expandablelistview以及价格
- 跳转gridview
- 工具类—全局配置MyApplication
- 如何创建高性能的MySQL索引
- AsyncContext源码翻译
- Fragment+TabLayout+ListView
- 二十一世纪计算 | 洪小文:帮助机器和人类共同学习
- 机器学习基础(一)
- windows和linux文件路径斜杠
- 设计模式(一):单例模式
- Android 开发 使用wifi连接adb
- 二进制文件方式安装Docker-CE
- C 指针