58 lines
1.7 KiB
Java
58 lines
1.7 KiB
Java
/*
|
|
* To change this license header, choose License Headers in Project Properties.
|
|
* To change this template file, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package org.redkale.net.http;
|
|
|
|
import java.net.*;
|
|
import java.nio.*;
|
|
import java.nio.charset.*;
|
|
import java.security.*;
|
|
import java.util.concurrent.*;
|
|
import java.util.logging.*;
|
|
import org.redkale.net.*;
|
|
import org.redkale.util.*;
|
|
import org.redkale.watch.*;
|
|
|
|
/**
|
|
* HTTP服务的上下文对象
|
|
*
|
|
* <p>
|
|
* 详情见: https://redkale.org
|
|
*
|
|
* @author zhangjx
|
|
*/
|
|
public class HttpContext extends Context {
|
|
|
|
protected final SecureRandom random = new SecureRandom();
|
|
|
|
public HttpContext(long serverStartTime, Logger logger, ExecutorService executor, int bufferCapacity, ObjectPool<ByteBuffer> bufferPool,
|
|
ObjectPool<Response> responsePool, int maxbody, Charset charset, InetSocketAddress address, PrepareServlet prepare,
|
|
WatchFactory watch, int readTimeoutSecond, int writeTimeoutSecond) {
|
|
super(serverStartTime, logger, executor, bufferCapacity, bufferPool, responsePool, maxbody, charset,
|
|
address, prepare, watch, readTimeoutSecond, writeTimeoutSecond);
|
|
|
|
random.setSeed(Math.abs(System.nanoTime()));
|
|
}
|
|
|
|
protected String createSessionid() {
|
|
byte[] bytes = new byte[16];
|
|
random.nextBytes(bytes);
|
|
return new String(Utility.binToHex(bytes));
|
|
}
|
|
|
|
protected WatchFactory getWatchFactory() {
|
|
return watch;
|
|
}
|
|
|
|
protected ExecutorService getExecutor() {
|
|
return executor;
|
|
}
|
|
|
|
protected ObjectPool<Response> getResponsePool() {
|
|
return responsePool;
|
|
}
|
|
|
|
}
|