当前位置: 首页>>代码示例>>Java>>正文


Java ByteChunk.append方法代码示例

本文整理汇总了Java中org.apache.tomcat.util.buf.ByteChunk.append方法的典型用法代码示例。如果您正苦于以下问题:Java ByteChunk.append方法的具体用法?Java ByteChunk.append怎么用?Java ByteChunk.append使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.tomcat.util.buf.ByteChunk的用法示例。


在下文中一共展示了ByteChunk.append方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: saveRequest

import org.apache.tomcat.util.buf.ByteChunk; //导入方法依赖的package包/类
/**
 * Save the original request information into our session.
 *
 * @param request The request to be saved
 * @param session The session to contain the saved information
 * @throws IOException
 */
protected void saveRequest(Request request, Session session)
    throws IOException {

    // Create and populate a SavedRequest object for this request
    SavedRequest saved = new SavedRequest();
    Cookie cookies[] = request.getCookies();
    if (cookies != null) {
        for (int i = 0; i < cookies.length; i++) {
            saved.addCookie(cookies[i]);
        }
    }
    Enumeration<String> names = request.getHeaderNames();
    while (names.hasMoreElements()) {
        String name = names.nextElement();
        Enumeration<String> values = request.getHeaders(name);
        while (values.hasMoreElements()) {
            String value = values.nextElement();
            saved.addHeader(name, value);
        }
    }
    Enumeration<Locale> locales = request.getLocales();
    while (locales.hasMoreElements()) {
        Locale locale = locales.nextElement();
        saved.addLocale(locale);
    }

    // May need to acknowledge a 100-continue expectation
    request.getResponse().sendAcknowledgement();

    ByteChunk body = new ByteChunk();
    body.setLimit(request.getConnector().getMaxSavePostSize());

    byte[] buffer = new byte[4096];
    int bytesRead;
    InputStream is = request.getInputStream();

    while ( (bytesRead = is.read(buffer) ) >= 0) {
        body.append(buffer, 0, bytesRead);
    }

    // Only save the request body if there is something to save
    if (body.getLength() > 0) {
        saved.setContentType(request.getContentType());
        saved.setBody(body);
    }

    saved.setMethod(request.getMethod());
    saved.setQueryString(request.getQueryString());
    saved.setRequestURI(request.getRequestURI());
    saved.setDecodedRequestURI(request.getDecodedRequestURI());

    // Stash the SavedRequest in our session for later use
    session.setNote(Constants.FORM_REQUEST_NOTE, saved);
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:62,代码来源:FormAuthenticator.java

示例2: saveRequest

import org.apache.tomcat.util.buf.ByteChunk; //导入方法依赖的package包/类
/**
 * Save the original request information into our session.
 *
 * @param request
 *            The request to be saved
 * @param session
 *            The session to contain the saved information
 * @throws IOException
 */
protected void saveRequest(Request request, Session session) throws IOException {

	// Create and populate a SavedRequest object for this request
	SavedRequest saved = new SavedRequest();
	Cookie cookies[] = request.getCookies();
	if (cookies != null) {
		for (int i = 0; i < cookies.length; i++) {
			saved.addCookie(cookies[i]);
		}
	}
	Enumeration<String> names = request.getHeaderNames();
	while (names.hasMoreElements()) {
		String name = names.nextElement();
		Enumeration<String> values = request.getHeaders(name);
		while (values.hasMoreElements()) {
			String value = values.nextElement();
			saved.addHeader(name, value);
		}
	}
	Enumeration<Locale> locales = request.getLocales();
	while (locales.hasMoreElements()) {
		Locale locale = locales.nextElement();
		saved.addLocale(locale);
	}

	// May need to acknowledge a 100-continue expectation
	request.getResponse().sendAcknowledgement();

	ByteChunk body = new ByteChunk();
	body.setLimit(request.getConnector().getMaxSavePostSize());

	byte[] buffer = new byte[4096];
	int bytesRead;
	InputStream is = request.getInputStream();

	while ((bytesRead = is.read(buffer)) >= 0) {
		body.append(buffer, 0, bytesRead);
	}

	// Only save the request body if there is something to save
	if (body.getLength() > 0) {
		saved.setContentType(request.getContentType());
		saved.setBody(body);
	}

	saved.setMethod(request.getMethod());
	saved.setQueryString(request.getQueryString());
	saved.setRequestURI(request.getRequestURI());
	saved.setDecodedRequestURI(request.getDecodedRequestURI());

	// Stash the SavedRequest in our session for later use
	session.setNote(Constants.FORM_REQUEST_NOTE, saved);
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:63,代码来源:FormAuthenticator.java

示例3: testFlushingWithGzip

import org.apache.tomcat.util.buf.ByteChunk; //导入方法依赖的package包/类
/**
 * Test the interaction betwen gzip and flushing. The idea is to: 1. create
 * a internal output buffer, response, and attach an active gzipoutputfilter
 * to the output buffer 2. set the output stream of the internal buffer to
 * be a ByteArrayOutputStream so we can inspect the output bytes 3. write a
 * chunk out using the gzipoutputfilter and invoke a flush on the
 * InternalOutputBuffer 4. read from the ByteArrayOutputStream to find out
 * what's being written out (flushed) 5. find out what's expected by wrting
 * to GZIPOutputStream and close it (to force flushing) 6. Compare the size
 * of the two arrays, they should be close (instead of one being much
 * shorter than the other one)
 *
 * @throws Exception
 */
@Test
public void testFlushingWithGzip() throws Exception {
    // set up response, InternalOutputBuffer, and ByteArrayOutputStream
    Response res = new Response();
    InternalOutputBuffer iob = new InternalOutputBuffer(res, 8 * 1024);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    iob.outputStream = bos;
    res.setOutputBuffer(iob);

    // set up GzipOutputFilter to attach to the InternalOutputBuffer
    GzipOutputFilter gf = new GzipOutputFilter();
    iob.addFilter(gf);
    iob.addActiveFilter(gf);

    // write a chunk out
    ByteChunk chunk = new ByteChunk(1024);
    byte[] d = "Hello there tomcat developers, there is a bug in JDK".getBytes();
    chunk.append(d, 0, d.length);
    iob.doWrite(chunk, res);

    // flush the InternalOutputBuffer
    iob.flush();

    // read from the ByteArrayOutputStream to find out what's being written
    // out (flushed)
    byte[] dataFound = bos.toByteArray();

    // find out what's expected by wrting to GZIPOutputStream and close it
    // (to force flushing)
    ByteArrayOutputStream gbos = new ByteArrayOutputStream(1024);
    GZIPOutputStream gos = new GZIPOutputStream(gbos);
    gos.write(d);
    gos.close();

    // read the expected data
    byte[] dataExpected = gbos.toByteArray();

    // most of the data should have been flushed out
    assertTrue(dataFound.length >= (dataExpected.length - 20));
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:55,代码来源:TestGzipOutputFilter.java


注:本文中的org.apache.tomcat.util.buf.ByteChunk.append方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。