![JAR search and dependency download from the Maven repository](/logo.png)
com.github.netty.protocol.servlet.ServletHttpExchange Maven / Gradle / Ivy
package com.github.netty.protocol.servlet;
import com.github.netty.core.util.Recyclable;
import com.github.netty.core.util.Recycler;
import com.github.netty.protocol.servlet.util.HttpHeaderUtil;
import com.github.netty.protocol.servlet.util.Protocol;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelOutboundBuffer;
import io.netty.handler.codec.http.HttpRequest;
import io.netty.util.Attribute;
import io.netty.util.AttributeKey;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
/**
* Servlet object (contains 3 big objects: request, response, TCP channel)
*
* @author wangzihao
* 2018/8/1/001
*/
public class ServletHttpExchange implements Recyclable, AutoCloseable {
public static final int CLOSE_NO = 0;
public static final int CLOSE_ING = 1;
public static final int CLOSE_YES = 2;
private static final Recycler RECYCLER = new Recycler<>(ServletHttpExchange::new);
private static final AttributeKey CHANNEL_ATTR_KEY_SESSION = AttributeKey.valueOf(ServletHttpSession.class + "#ServletHttpSession");
private static final AttributeKey CHANNEL_ATTR_KEY_EXCHANGE = AttributeKey.valueOf(ServletHttpExchange.class + "#ServletHttpExchange");
private final AtomicInteger close = new AtomicInteger(CLOSE_NO);
private Protocol protocol;
private boolean ssl;
private ServletHttpServletRequest request;
private ServletHttpServletResponse response;
private ChannelHandlerContext channelHandlerContext;
private ServletContext servletContext;
private boolean isHttpKeepAlive;
private boolean websocket;
/**
* on start async after. client abort
*/
private boolean abortFlag;
private final Consumer
© 2015 - 2025 Weber Informatics LLC | Privacy Policy