解决方案 »

  1.   

    我看了下WebContextFactory的源代码如下:
    public class WebContextFactory
    {
        /**
         * Accessor for the current WebContext.
         * @return The current WebContext or null if the current thread was not
         * started by DWR.
         */
        public static WebContext get()
        {
            if (builder == null)
            {
                return null;
            }        return builder.get();
        }    /**
         * Internal method to allow us to get the WebContextBuilder from which we
         * will get WebContext objects.
         * Do not call this method from outside of DWR.
         * @param builder The factory object (from DwrServlet)
         */
        public static void setWebContextBuilder(WebContextBuilder builder)
        {
            WebContextFactory.builder = builder;
        }    /**
         * The WebContextBuilder from which we will get WebContext objects
         */
        private static WebContextBuilder builder;    /**
         * Class to enable us to access servlet parameters.
         */
        public interface WebContextBuilder
        {
            /**
             * Make the current thread know what the current request is.
             * This method is only for use internally to DWR.
             * @param request The incoming http request
             * @param response The outgoing http reply
             * @param config The servlet configuration
             * @param context The servlet context
             * @param container The IoC container
             * @see #unset()
             */
            void set(HttpServletRequest request, HttpServletResponse response, ServletConfig config, ServletContext context, Container container);        /**
             * @return The WebContext that is associated with this thread
             */
            WebContext get();        /**
             * Unset the current ExecutionContext
             * This method is only for use internally to DWR.
             * @see #set(HttpServletRequest, HttpServletResponse, ServletConfig, ServletContext, Container)
             */
            void unset();
        }
    }