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

下面列出了怎么用javax.servlet.http.PushBuilder的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: javaee8-cookbook   文件: ServerPush.java
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    PushBuilder pb = request.newPushBuilder();
    if (pb != null) {
        pb.path("images/javaee-logo.png")
          .addHeader("content-type", "image/png")
          .push();
    }

    try (PrintWriter writer = response.getWriter();) {
        StringBuilder html = new StringBuilder();
        html.append("<html>");
        html.append("<center>");
        html.append("<img src='images/javaee-logo.png'><br>");
        html.append("<h2>Image pushed by ServerPush</h2>");
        html.append("</center>");
        html.append("</html>");
        writer.write(html.toString());
    }
}
 
源代码2 项目: javaee8-cookbook   文件: PushFilter.java
@Override
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain)
        throws IOException, ServletException {
    
    HttpServletRequest httpReq = (HttpServletRequest)request;
    PushBuilder builder =  httpReq.newPushBuilder();
    
    if (builder != null){
        builder
            .path("resources/javaee-logo.png")
            .path("resources/style.css")
            .path("resources/functions.js")
            .push();            
        System.out.println("Resources pushed");
    }

    chain.doFilter(request, response);
    
}
 
@Nullable
public static Object resolvePushBuilder(HttpServletRequest request, Class<?> paramType) {
	PushBuilder pushBuilder = request.newPushBuilder();
	if (pushBuilder != null && !paramType.isInstance(pushBuilder)) {
		throw new IllegalStateException(
				"Current push builder is not of type [" + paramType.getName() + "]: " + pushBuilder);
	}
	return pushBuilder;

}
 
@Before
public void setup() throws Exception {
	resolver = new ServletRequestMethodArgumentResolver();
	mavContainer = new ModelAndViewContainer();
	servletRequest = new MockHttpServletRequest("GET", "");
	webRequest = new ServletWebRequest(servletRequest, new MockHttpServletResponse());

	method = getClass().getMethod("supportedParams", ServletRequest.class, MultipartRequest.class,
			HttpSession.class, Principal.class, Locale.class, InputStream.class, Reader.class,
			WebRequest.class, TimeZone.class, ZoneId.class, HttpMethod.class, PushBuilder.class);
}
 
@SuppressWarnings("unused")
public void supportedParams(ServletRequest p0,
							MultipartRequest p1,
							HttpSession p2,
							Principal p3,
							Locale p4,
							InputStream p5,
							Reader p6,
							WebRequest p7,
							TimeZone p8,
							ZoneId p9,
							HttpMethod p10,
							PushBuilder p11) {
}
 
源代码6 项目: quarkus-http   文件: HttpServletRequestImpl.java
@Override
public PushBuilder newPushBuilder() {
    if (exchange.isPushSupported()) {
        return new PushBuilderImpl(this);
    }
    return null;
}
 
@Nullable
public static Object resolvePushBuilder(HttpServletRequest request, Class<?> paramType) {
	PushBuilder pushBuilder = request.newPushBuilder();
	if (pushBuilder != null && !paramType.isInstance(pushBuilder)) {
		throw new IllegalStateException(
				"Current push builder is not of type [" + paramType.getName() + "]: " + pushBuilder);
	}
	return pushBuilder;

}
 
@Before
public void setup() throws Exception {
	resolver = new ServletRequestMethodArgumentResolver();
	mavContainer = new ModelAndViewContainer();
	servletRequest = new MockHttpServletRequest("GET", "");
	webRequest = new ServletWebRequest(servletRequest, new MockHttpServletResponse());

	method = getClass().getMethod("supportedParams", ServletRequest.class, MultipartRequest.class,
			HttpSession.class, Principal.class, Locale.class, InputStream.class, Reader.class,
			WebRequest.class, TimeZone.class, ZoneId.class, HttpMethod.class, PushBuilder.class);
}
 
@SuppressWarnings("unused")
public void supportedParams(ServletRequest p0,
							MultipartRequest p1,
							HttpSession p2,
							Principal p3,
							Locale p4,
							InputStream p5,
							Reader p6,
							WebRequest p7,
							TimeZone p8,
							ZoneId p9,
							HttpMethod p10,
							PushBuilder p11) {
}
 
源代码10 项目: Java-EE-8-Sampler   文件: ObtainPushBuilder.java
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    PushBuilder pushBuilder = request.newPushBuilder();

    if (pushBuilder != null) {
        pushBuilder.path("images/hero-banner.jpg").push();
        pushBuilder.path("css/menu.css").push();
        pushBuilder.path("js/marquee.js").push();
    }

    getServletContext().getRequestDispatcher("/duke.jsp").forward(request, response);

}
 
源代码11 项目: lams   文件: HttpServletRequestImpl.java
@Override
public PushBuilder newPushBuilder() {
    if(exchange.getConnection().isPushSupported()) {
        return new PushBuilderImpl(this);
    }
    return null;
}
 
源代码12 项目: 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>");
}
 
源代码13 项目: tutorials   文件: PushController.java
@GetMapping(path = "/demoWithPush")
public String demoWithPush(PushBuilder pushBuilder) {
    if (null != pushBuilder) {
        pushBuilder.path("resources/logo.png").push();
    }
    return "demo";
}
 
源代码14 项目: quarkus-http   文件: PushBuilderImpl.java
@Override
public PushBuilder setHeader(String name, String value) {
    headers.set(name, value);
    return this;
}
 
源代码15 项目: quarkus-http   文件: PushBuilderImpl.java
@Override
public PushBuilder addHeader(String name, String value) {
    headers.add(name, value);
    return this;
}
 
源代码16 项目: quarkus-http   文件: PushBuilderImpl.java
@Override
public PushBuilder removeHeader(String name) {
    headers.remove(name);
    return this;
}
 
源代码17 项目: javaee8-cookbook   文件: ServerPushServlet.java
private void doRequest(HttpServletRequest request, HttpServletResponse response) throws IOException{
    String usePush = request.getParameter("usePush");
    
    if ("true".equalsIgnoreCase(usePush)){
        PushBuilder pb = request.newPushBuilder();
        if (pb != null) {
            for(int row=0; row < 5; row++){
                for(int col=0; col < 8; col++){
                    pb.path("image/keyboard_buttons/keyboard_buttons-" + row + "-" + col + ".jpeg")
                      .addHeader("content-type", "image/jpeg")
                      .push();
                }
            }
        }
    }

    try (PrintWriter writer = response.getWriter()) {
        StringBuilder html = new StringBuilder();
        html.append("<html>");
        html.append("<center>");
        
        html.append("<table cellspacing='0' cellpadding='0' border='0'>");

        for(int row=0; row < 5; row++){
            html.append("  <tr>");
            for(int col=0; col < 8; col++){
                html.append("    <td>");
                html.append("<img src='image/keyboard_buttons/keyboard_buttons-" + row + "-" + col + ".jpeg' style='width:100px; height:106.25px;'>");                    
                html.append("    </td>");            
            }
            html.append("  </tr>");            
        }
        
        html.append("</table>");
        
        html.append("<br>");
        
        if ("true".equalsIgnoreCase(usePush)){
            html.append("<h2>Image pushed by ServerPush</h2>");
        } else{
            html.append("<h2>Image loaded using HTTP/1.0</h2>");
        }
        
        html.append("</center>");
        html.append("</html>");
        writer.write(html.toString());
    }
}
 
源代码18 项目: lams   文件: PushBuilderImpl.java
@Override
public PushBuilder setHeader(String name, String value) {
    headers.put(new HttpString(name), value);
    return this;
}
 
源代码19 项目: lams   文件: PushBuilderImpl.java
@Override
public PushBuilder addHeader(String name, String value) {
    headers.add(new HttpString(name), value);
    return this;
}
 
源代码20 项目: lams   文件: PushBuilderImpl.java
@Override
public PushBuilder removeHeader(String name) {
    headers.remove(name);
    return this;
}