Package org.itsnat.feashow

Source Code of org.itsnat.feashow.GlobalItsNatServletRequestListener

/*
* This file is not part of the ItsNat framework.
*
* Original source code use and closed source derivatives are authorized
* to third parties with no restriction or fee.
* The original source code is owned by the author.
*
* This program is distributed AS IS in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* (C) Innowhere Software a service of Jose Maria Arranz Santamaria, Spanish citizen.
*/

package org.itsnat.feashow;

import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.itsnat.core.ItsNatDocument;
import org.itsnat.core.ItsNatServlet;
import org.itsnat.core.ItsNatServletRequest;
import org.itsnat.core.ItsNatServletResponse;
import org.itsnat.core.event.ItsNatServletRequestListener;

public class GlobalItsNatServletRequestListener implements ItsNatServletRequestListener
{
    public GlobalItsNatServletRequestListener()
    {
    }

    public void processRequest(ItsNatServletRequest request, ItsNatServletResponse response)
    {
        ItsNatDocument itsNatDoc = request.getItsNatDocument();

        if (itsNatDoc != null)
        {
            //String docName = itsNatDoc.getItsNatDocumentTemplate().getName();
            //System.out.println("Loading " + docName);
        }
        else
        {
            ServletRequest servReq = request.getServletRequest();
            String docName = servReq.getParameter("itsnat_doc_name");
            if (docName == null) docName = (String)servReq.getAttribute("itsnat_doc_name");
            if (docName == null)
            {
                HttpServletRequest servRequest = (HttpServletRequest)request.getServletRequest();
                String pathInfo = servRequest.getPathInfo();
                if (pathInfo == null)
                {
                    // Index page
                    servRequest.setAttribute("itsnat_doc_name","feashow.index");
                }
                else
                {
                    // Pretty URL case
                    docName = pathInfo.substring(1); // "/name/name" => "name/name"
                    docName = docName.replace('/','.');// "name.name"
                    servRequest.setAttribute("itsnat_doc_name",docName);
                }
               
                ServletResponse servResponse = response.getServletResponse();
                request.getItsNatServlet().processRequest(servRequest,servResponse);
            }
            else // Not found
            {
                ItsNatServlet servlet = response.getItsNatServlet();
                ServletRequest servRequest = request.getServletRequest();
                @SuppressWarnings("unchecked")
                Map<String,String[]> newParams = new HashMap<String,String[]>(servRequest.getParameterMap());
                newParams.put("itsnat_doc_name",new String[]{"feashow.docNotFound"});
                servRequest = servlet.createServletRequest(servRequest, newParams);
                servlet.processRequest(servRequest,response.getServletResponse());
            }
        }
    }

}
TOP

Related Classes of org.itsnat.feashow.GlobalItsNatServletRequestListener

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.