本文整理汇总了Java中org.apache.catalina.connector.Response.isError方法的典型用法代码示例。如果您正苦于以下问题:Java Response.isError方法的具体用法?Java Response.isError怎么用?Java Response.isError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.catalina.connector.Response
的用法示例。
在下文中一共展示了Response.isError方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: invoke
import org.apache.catalina.connector.Response; //导入方法依赖的package包/类
/**
* Invoke the next Valve in the sequence. When the invoke returns, check
* the response state. If the status code is greater than or equal to 400
* or an uncaught exception was thrown then the error handling will be
* triggered.
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
// Perform the request
getNext().invoke(request, response);
if (response.isCommitted()) {
if (response.setErrorReported()) {
// Error wasn't previously reported but we can't write an error
// page because the response has already been committed. Attempt
// to flush any data that is still to be written to the client.
try {
response.flushBuffer();
} catch (Throwable t) {
ExceptionUtils.handleThrowable(t);
}
// Close immediately to signal to the client that something went
// wrong
response.getCoyoteResponse().action(ActionCode.CLOSE_NOW, null);
}
return;
}
Throwable throwable = (Throwable) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
// If an async request is in progress and is not going to end once this
// container thread finishes, do not process any error page here.
if (request.isAsync() && !request.isAsyncCompleting()) {
return;
}
if (throwable != null && !response.isError()) {
// Make sure that the necessary methods have been called on the
// response. (It is possible a component may just have set the
// Throwable. Tomcat won't do that but other components might.)
// These are safe to call at this point as we know that the response
// has not been committed.
response.reset();
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
// One way or another, response.sendError() will have been called before
// execution reaches this point and suspended the response. Need to
// reverse that so this valve can write to the response.
response.setSuspended(false);
try {
report(request, response, throwable);
} catch (Throwable tt) {
ExceptionUtils.handleThrowable(tt);
}
}
示例2: invoke
import org.apache.catalina.connector.Response; //导入方法依赖的package包/类
/**
* Invoke the next Valve in the sequence. When the invoke returns, check the
* response state. If the status code is greater than or equal to 400 or an
* uncaught exception was thrown then the error handling will be triggered.
*
* @param request
* The servlet request to be processed
* @param response
* The servlet response to be created
*
* @exception IOException
* if an input/output error occurs
* @exception ServletException
* if a servlet error occurs
*/
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
// Perform the request
getNext().invoke(request, response);
if (response.isCommitted()) {
if (response.setErrorReported()) {
// Error wasn't previously reported but we can't write an error
// page because the response has already been committed. Attempt
// to flush any data that is still to be written to the client.
try {
response.flushBuffer();
} catch (Throwable t) {
ExceptionUtils.handleThrowable(t);
}
// Close immediately to signal to the client that something went
// wrong
response.getCoyoteResponse().action(ActionCode.CLOSE_NOW, null);
}
return;
}
Throwable throwable = (Throwable) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
// If an async request is in progress and is not going to end once this
// container thread finishes, do not process any error page here.
if (request.isAsync() && !request.isAsyncCompleting()) {
return;
}
if (throwable != null && !response.isError()) {
// Make sure that the necessary methods have been called on the
// response. (It is possible a component may just have set the
// Throwable. Tomcat won't do that but other components might.)
// These are safe to call at this point as we know that the response
// has not been committed.
response.reset();
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
// One way or another, response.sendError() will have been called before
// execution reaches this point and suspended the response. Need to
// reverse that so this valve can write to the response.
response.setSuspended(false);
try {
report(request, response, throwable);
} catch (Throwable tt) {
ExceptionUtils.handleThrowable(tt);
}
}
示例3: invoke
import org.apache.catalina.connector.Response; //导入方法依赖的package包/类
@Override
public void invoke (Request request, Response response) throws IOException,
ServletException
{
// valve disabled or previous valve sent an error, return
if (!isEnable() || response.isError())
{
getNext().invoke(request, response);
return;
}
final AccessInformation ai = new AccessInformation();
ai.setConnectionStatus(new PendingConnectionStatus());
// To be sure not to retrieve the same date trough concurrency calls.
synchronized (this)
{
ai.setStartTimestamp(System.nanoTime());
ai.setStartDate (new Date ());
}
try
{
this.doLog(request, response, ai);
}
finally
{
Element cached_element = new Element(UUID.randomUUID(), ai);
getCache().put(cached_element);
try
{
// Log of the pending request command.
if (isUseLogger()) LOGGER.info ("Access " + ai);
getNext().invoke(request, response);
}
catch (Throwable e)
{
response.addHeader("cause-message",
e.getClass().getSimpleName() + " : " + e.getMessage());
//ai.setConnectionStatus(new FailureConnectionStatus(e));
response.setStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR);
//throw e;
}
finally
{
ai.setReponseSize(response.getContentLength());
ai.setWrittenResponseSize(response.getContentWritten());
if (response.getStatus()>=400)
{
String message = RequestUtil.filter(response.getMessage());
if (message==null)
{
// The cause-message has been inserted into the reponse header
// at error handler time. It no message is retrieved in the
// standard response, the cause-message is used.
message = response.getHeader("cause-message");
}
Throwable throwable = null;
if (message != null) throwable = new Throwable(message);
else throwable = (Throwable) request.getAttribute(
RequestDispatcher.ERROR_EXCEPTION);
if (throwable==null) throwable = new Throwable();
ai.setConnectionStatus(new FailureConnectionStatus(throwable));
}
else
ai.setConnectionStatus(new SuccessConnectionStatus());
ai.setEndTimestamp(System.nanoTime());
if ((getPattern()==null) || ai.getRequest().matches(getPattern()))
{
cached_element.updateUpdateStatistics();
if (isUseLogger()) LOGGER.info ("Access " + ai);
}
}
}
}