/** * Dispatches the specified request to the specified article or page processor with the specified * response. * * @param request the specified request * @param response the specified response * @param article the specified article * @param page the specified page * @throws ServletException servlet exception * @throws IOException io exception * @see HTTPRequestDispatcher#dispatch(org.b3log.latke.servlet.HTTPRequestContext) */ private void dispatchToArticleOrPageProcessor( final ServletRequest request, final ServletResponse response, final JSONObject article, final JSONObject page) throws ServletException, IOException { final HTTPRequestContext context = new HTTPRequestContext(); context.setRequest((HttpServletRequest) request); context.setResponse((HttpServletResponse) response); if (null != article) { request.setAttribute(Article.ARTICLE, article); request.setAttribute(Keys.HttpRequest.REQUEST_URI, Juggs.getContextPath() + "/article"); } else { request.setAttribute(Page.PAGE, page); request.setAttribute(Keys.HttpRequest.REQUEST_URI, Juggs.getContextPath() + "/page"); } request.setAttribute(Keys.HttpRequest.REQUEST_METHOD, HTTPRequestMethod.GET.name()); HTTPRequestDispatcher.dispatch(context); }