當前位置: 首頁>>代碼示例>>Java>>正文


Java Response.setStatus方法代碼示例

本文整理匯總了Java中org.apache.catalina.connector.Response.setStatus方法的典型用法代碼示例。如果您正苦於以下問題:Java Response.setStatus方法的具體用法?Java Response.setStatus怎麽用?Java Response.setStatus使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.catalina.connector.Response的用法示例。


在下文中一共展示了Response.setStatus方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: 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);
         }
      }
   }
}
 
開發者ID:SentinelDataHub,項目名稱:dhus-core,代碼行數:80,代碼來源:AccessValve.java


注:本文中的org.apache.catalina.connector.Response.setStatus方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。