Package railo.runtime.net.http

Source Code of railo.runtime.net.http.RequestDispatcherWrap

package railo.runtime.net.http;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import railo.commons.net.HTTPUtil;
import railo.runtime.PageContext;
import railo.runtime.engine.ThreadLocalPageContext;

public class RequestDispatcherWrap implements RequestDispatcher {

  private String realPath;
  private HTTPServletRequestWrap req;

  public RequestDispatcherWrap(HTTPServletRequestWrap req, String realPath) {
    this.realPath=realPath;
    this.req=req;
  }

  public void forward(ServletRequest req, ServletResponse rsp)throws ServletException, IOException {
    PageContext pc = ThreadLocalPageContext.get();
    req=HTTPUtil.removeWrap(req);
    if(pc==null){
      this.req.getOriginalRequestDispatcher(realPath).forward(req, rsp);
      return;
    }
   
   
    realPath=HTTPUtil.optimizeRealPath(pc,realPath);
   
    try{
      RequestDispatcher disp = this.req.getOriginalRequestDispatcher(realPath);
      disp.forward(req,rsp);
    }
    finally{
          ThreadLocalPageContext.register(pc);
    }
  }

  /*public void include(ServletRequest req, ServletResponse rsp)throws ServletException, IOException {
    PageContext pc = ThreadLocalPageContext.get();
    if(pc==null){
      this.req.getOriginalRequestDispatcher(realPath).include(req, rsp);
      return;
    }
    try{
      realPath=HTTPUtil.optimizeRealPath(pc,realPath);
      RequestDispatcher disp = this.req.getOriginalRequestDispatcher(realPath);
          disp.include(req,rsp);
    }
    finally{
          ThreadLocalPageContext.register(pc);
    }
  }*/
 
 

  public void include(ServletRequest req, ServletResponse rsp)throws ServletException, IOException {
    PageContext pc = ThreadLocalPageContext.get();
    if(pc==null){
      this.req.getOriginalRequestDispatcher(realPath).include(req, rsp);
      return;
    }
    //rsp.getWriter().flush();
    //print.out("abc:"+rsp);
    HTTPUtil.include(pc,req, rsp,realPath);
   
    /*
    realPath=HTTPUtil.optimizeRealPath(pc,realPath);
    ByteArrayOutputStream baos=new ByteArrayOutputStream();
     
    try{
      HttpServletResponse drsp=new HttpServletResponseWrap(pc.getHttpServletResponse(),baos);
      RequestDispatcher disp = pc.getServletContext().getRequestDispatcher(realPath);
      if(disp==null)
            throw new PageServletException(new ApplicationException("Page "+realPath+" not found"));
          disp.include(req,drsp);
          if(!drsp.isCommitted())drsp.flushBuffer();
          pc.write(IOUtil.toString(baos.toByteArray(), drsp.getCharacterEncoding()));
    }
    finally{
          ThreadLocalPageContext.register(pc);
    }*/
  }
TOP

Related Classes of railo.runtime.net.http.RequestDispatcherWrap

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.