Java 类javax.servlet.http.PushBuilder 实例源码

项目:servlet4-demo    文件:GreetingController.java   
/**
 * Receive a GET request for a Greeting.
 *
 * @param request the request
 * @param name    the string containing the name
 * @return a Greeting
 */
@RequestMapping("/greeting")
public Greeting greeting(
    ServletRequest request,
    @RequestParam(value = "name", defaultValue = "World") String name) {

  HttpServletRequestImpl httpServletRequest = (HttpServletRequestImpl) request;
  HttpServerExchange exchange = httpServletRequest.getExchange();
  exchange
      .getConnection()
      .pushResource("/push-greeting?name=push", Methods.GET, exchange.getRequestHeaders());
  LOG.info("undertow pushBuilder has pushed resource.");

  PushBuilder pushBuilder = httpServletRequest.newPushBuilder();
  if (pushBuilder != null) {
    pushBuilder.path("/push-greeting?name=push");
    pushBuilder.push();
  } else {
    LOG.info("No servlet4 pushBuilder!");
  }

  return new Greeting(counter.incrementAndGet(),
      String.format(template, name));
}
项目:servlet4-demo    文件:GreetingController.java   
/**
 * Method to receive a GET request for a Greeting.
 * @param request the HTTP request.
 * @param name the string containing the name
 * @return a Greeting
 */
@RequestMapping("/greeting")
public Greeting greeting(ServletRequest request,
    @RequestParam(value = "name", defaultValue = "World") String name) {

  HttpServletRequest httpServletRequest = (HttpServletRequest) request;
  if (httpServletRequest != null) {
    LOG.info("can cast to HttpServletRequest");
    if (null != httpServletRequest.newPushBuilder()) {
      PushBuilder pushBuilder = httpServletRequest.newPushBuilder();
      pushBuilder.path("/push-greeting?name=push");
      pushBuilder.push();
      LOG.info("##### has pushbuilder");
    } else {
      LOG.info("##### has no pushbuilder");
    }
  }

  jettyServerPushFunction.jettyServerPush(request);

  return new Greeting(counter.incrementAndGet(),
      String.format(template, name));
}
项目:servlet4-demo    文件:Http2ServletTest.java   
@Before
public void setUp() {
  sut = new Http2Servlet();

  request = mock(HttpServletRequest.class);
  response = mock(HttpServletResponse.class);
  pushBuilder = mock(PushBuilder.class);
  PrintWriter printWriter = new PrintWriter(stringWriter);

  when(pushBuilder.path(anyString())).thenReturn(pushBuilder);
  when(pushBuilder.addHeader(anyString(), anyString())).thenReturn(pushBuilder);
  when(request.newPushBuilder()).thenReturn(pushBuilder);
  try {
    when(response.getWriter()).thenReturn(printWriter);
  } catch (IOException e) {
    fail();
  }
}
项目:javaee8-applications    文件:DukeServlet.java   
@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {

        PushBuilder pushBuilder = req.newPushBuilder();
        if (pushBuilder != null) {
            pushBuilder
                    .path("resources/images/dukewaving.gif")
                    .addHeader("content-type", "image/gif")
                    .push();
            // Push more than one resource
//            pushBuilder
//                    .path("resources/images/dukewaving.gif")
//                    .addHeader("content-type", "image/gif")
//                    .push();
        }
        try (PrintWriter respWriter = resp.getWriter();) {
            respWriter.write("<html>"
                    + "<img src='resources/images/dukewaving.gif'>"
                    + "</html>");
        } catch (IOException ex) {
            System.out.println(ex);
        }
    }
项目:servlet4-demo    文件:GreetingControllerTest.java   
@Before
public void setUp() {
  sut = new GreetingController();
  connection = mock(ServerConnection.class);

  exchange = mock(HttpServerExchange.class);
  request = mock(HttpServletRequestImpl.class);
  pushBuilder = mock(PushBuilder.class);

  when(exchange.getConnection()).thenReturn(connection);
  when(exchange.getRequestHeaders()).thenReturn(new HeaderMap());
  when(request.getExchange()).thenReturn(exchange);

}
项目:servlet4-demo    文件:GreetingControllerTest.java   
@Before
public void setUp() {
  JettyServerPushFunction jettyServerPushFunction = mock(JettyServerPushFunction.class);
  this.greetingController = new GreetingController(jettyServerPushFunction);
  this.request = mock(HttpServletRequest.class);
  this.pushBuilder = mock(PushBuilder.class);
  Request jettyBaseRequest = mock(Request.class);
  org.eclipse.jetty.server.PushBuilder jettyPushBuilder = mock(org.eclipse.jetty.server.PushBuilder.class);

  when(pushBuilder.path(anyString())).thenReturn(this.pushBuilder);
  when(jettyPushBuilder.path(anyString())).thenReturn(jettyPushBuilder);
  when(jettyBaseRequest.getPushBuilder()).thenReturn(jettyPushBuilder);
}
项目:servlet4-demo    文件:Http2Servlet.java   
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {

  resp.setContentType("text/html;charset=UTF-8");
  PushBuilder pushBuilder = req.newPushBuilder();
  if (pushBuilder != null) {
    pushBuilder
        .path("images/cat.png")
        .addHeader("content-type", "image/jpeg")
        .push();
    pushBuilder
        .path("http2-json")
        .addHeader("content-type", "application/json")
        .push();
  }
  try (PrintWriter respWriter = resp.getWriter()) {
    respWriter.write(new StringBuilder()
                         .append("<html>")
                         .append("<img src='images/cat.jpg'>")
                         .append("<p>Image by <a href=\"https://flic.kr/p/HPf9R1\">")
                         .append("Andy Miccone</a></p>")
                         .append("<p>License: <a href=\"https://creativecommons.org/")
                         .append("publicdomain/zero/1.0/\">")
                         .append("CC0 1.0 Universal (CC0 1.0) \n")
                         .append("Public Domain Dedication</a></p>")
                         .append("</html>")
                         .toString());
  }
}
项目:servlet4-demo    文件:GreetingController.java   
/**
 * Method to receive a GET request for a Greeting.
 * @param request the HTTP request.
 * @param name the string containing the name
 * @return a Greeting
 */
@RequestMapping("/greeting")
public Greeting greeting(
    HttpServletRequest request,
    @RequestParam(value = "name", defaultValue = "World") String name) {

  PushBuilder pushBuilder = request.newPushBuilder();
  pushBuilder.path("/push-greeting?name=push");
  pushBuilder.push();

  return new Greeting(counter.incrementAndGet(),
      String.format(TEMPLATE, name));
}
项目:servlet4-demo    文件:GreetingControllerTest.java   
@Before
public void setUp() {
  sut = new GreetingController();
  request = mock(HttpServletRequest.class);
  pushBuilder = mock(PushBuilder.class);

  when(pushBuilder.path(anyString())).thenReturn(pushBuilder);
  when(request.newPushBuilder()).thenReturn(pushBuilder);
}
项目:nightclazz-spring5    文件:DrawingController.java   
@GetMapping("/")
public String index(final PushBuilder pushBuilder) {
    mongoTemplate.find(findAllQuery(), DrawingInfo.class, "drawings")
            .collectList()
            .block()
            .forEach(performServerPush(pushBuilder));

    return "drawing.html";
}
项目:ee8-sandbox    文件:PushServlet.java   
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res)
        throws IOException, ServletException {
    PushBuilder pushBuilder = req.newPushBuilder().
        path("main.css");
    pushBuilder.push();
    res.getWriter().println("<html><head><title>HTTP2 Test</title><link rel=\"stylesheet\" href=\"main.css\"></head><body>Hello Servlet Push!!!</body></html>");
}
项目:nightclazz-spring5    文件:DrawingController.java   
private Consumer<? super DrawingInfo> performServerPush(final PushBuilder pushBuilder) {
    return drawing -> pushBuilder.path("/drawing/" + drawing.getId()).push();
}