类javax.servlet.SingleThreadModel源码实例Demo

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

源代码1 项目: quarkus-http   文件: ManagedServlet.java
public ManagedServlet(final ServletInfo servletInfo, final ServletContextImpl servletContext) {
    this.servletInfo = servletInfo;
    this.servletContext = servletContext;
    if (SingleThreadModel.class.isAssignableFrom(servletInfo.getServletClass())) {
        instanceStrategy = new SingleThreadModelPoolStrategy(servletInfo.getInstanceFactory(), servletInfo, servletContext);
    } else {
        instanceStrategy = new DefaultInstanceStrategy(servletInfo.getInstanceFactory(), servletInfo, servletContext);
    }
    setupMultipart(servletContext);
}
 
源代码2 项目: lams   文件: ManagedServlet.java
public ManagedServlet(final ServletInfo servletInfo, final ServletContextImpl servletContext) {
    this.servletInfo = servletInfo;
    this.servletContext = servletContext;
    if (SingleThreadModel.class.isAssignableFrom(servletInfo.getServletClass())) {
        instanceStrategy = new SingleThreadModelPoolStrategy(servletInfo.getInstanceFactory(), servletInfo, servletContext);
    } else {
        instanceStrategy = new DefaultInstanceStrategy(servletInfo.getInstanceFactory(), servletInfo, servletContext);
    }
    setupMultipart(servletContext);
}
 
源代码3 项目: knopflerfish.org   文件: RequestDispatcherImpl.java
private void service(Request request, Response response)
    throws IOException, ServletException
{
  if (httpContext.handleSecurity(request, response)) {

    final Thread t = Thread.currentThread();
    Stack<String> usedURIStack = threadStacks.get(t);
    if (usedURIStack == null) {
      usedURIStack = new Stack<String>();
      threadStacks.put(t, usedURIStack);
    }
    String uri =
      (String) request.getAttribute("javax.servlet.include.request_uri");
    if (uri == null) {
      uri = request.getRequestURI();
    }
    if (usedURIStack.contains(uri)) {
      throw new ServletException("Recursive include of \"" + uri + "\"");
    }

    usedURIStack.push(uri);
    try {
      if (servlet instanceof SingleThreadModel) {
        synchronized (servlet) {
          if (config == null) {
            // Activator.log.info("Serving: " + uri);
            servlet.service(request, response);
            // Activator.log.info("Served: " + uri);
          } else {
            serviceResource(request, response, config);
          }
        }
      } else {
        if (config == null) {
          // Activator.log.info(Thread.currentThread().getName() + " Serving: " + uri);
          servlet.service(request, response);
          // Activator.log.info(Thread.currentThread().getName() + " Served: " + uri);
        } else {
          serviceResource(request, response, config);
        }
      }
    } finally {
      usedURIStack.pop();
      if (usedURIStack.empty()) {
        threadStacks.remove(t);
      }
    }

  }
}
 
 类所在包
 同包方法