Home / Class/ FallbackRequestHandler Class — netty Architecture

FallbackRequestHandler Class — netty Architecture

Architecture documentation for the FallbackRequestHandler class in FallbackRequestHandler.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  33d8529e_f312_f6bb_4ff0_d633c241627c["FallbackRequestHandler"]
  3c77e5e2_b9af_e342_2c48_04acf534716a["FallbackRequestHandler.java"]
  33d8529e_f312_f6bb_4ff0_d633c241627c -->|defined in| 3c77e5e2_b9af_e342_2c48_04acf534716a
  274c523f_6ef9_7fdf_7bd1_ff3ec6b9217f["channelRead0()"]
  33d8529e_f312_f6bb_4ff0_d633c241627c -->|method| 274c523f_6ef9_7fdf_7bd1_ff3ec6b9217f
  52c0da67_3711_8b1f_8aa8_4c6904b4e443["channelReadComplete()"]
  33d8529e_f312_f6bb_4ff0_d633c241627c -->|method| 52c0da67_3711_8b1f_8aa8_4c6904b4e443
  ae87b221_fc4e_3ac5_2575_63ee385cee6d["exceptionCaught()"]
  33d8529e_f312_f6bb_4ff0_d633c241627c -->|method| ae87b221_fc4e_3ac5_2575_63ee385cee6d

Relationship Graph

Source Code

example/src/main/java/io/netty/example/http2/tiles/FallbackRequestHandler.java lines 41–74

public final class FallbackRequestHandler extends SimpleChannelInboundHandler<HttpRequest> {

    private static final ByteBuf response = unreleasableBuffer(copiedBuffer("<!DOCTYPE html>"
            + "<html><body><h2>To view the example you need a browser that supports HTTP/2 ("
            + Http2CodecUtil.TLS_UPGRADE_PROTOCOL_NAME
            + ")</h2></body></html>", UTF_8)).asReadOnly();

    @Override
    protected void channelRead0(ChannelHandlerContext ctx, HttpRequest req) throws Exception {
        if (HttpUtil.is100ContinueExpected(req)) {
            ctx.write(new DefaultFullHttpResponse(HTTP_1_1, CONTINUE, EMPTY_BUFFER));
        }

        ByteBuf content = ctx.alloc().buffer();
        content.writeBytes(response.duplicate());

        FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, OK, content);
        response.headers().set(CONTENT_TYPE, "text/html; charset=UTF-8");
        response.headers().setInt(CONTENT_LENGTH, response.content().readableBytes());

        ctx.write(response).addListener(ChannelFutureListener.CLOSE);
    }

    @Override
    public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
        ctx.flush();
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
        cause.printStackTrace();
        ctx.close();
    }
}

Frequently Asked Questions

What is the FallbackRequestHandler class?
FallbackRequestHandler is a class in the netty codebase, defined in example/src/main/java/io/netty/example/http2/tiles/FallbackRequestHandler.java.
Where is FallbackRequestHandler defined?
FallbackRequestHandler is defined in example/src/main/java/io/netty/example/http2/tiles/FallbackRequestHandler.java at line 41.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free