All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.wings.jsp.ExternalizerServlet Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2000,2005 wingS development team.
 *
 * This file is part of wingS (http://wingsframework.org).
 *
 * wingS is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation; either version 2.1
 * of the License, or (at your option) any later version.
 *
 * Please see COPYING for the complete licence.
 */
package org.wings.jsp;

import org.wings.externalizer.ExternalizedResource;
import org.wings.io.Device;
import org.wings.io.DeviceFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author hengels
 */
public class ExternalizerServlet extends HttpServlet {
    /**
     * Apache jakarta commons logger
     */
    private final static Logger log = LoggerFactory.getLogger(ExternalizerServlet.class);

    private ServletConfig servletConfig;

    /* (non-Javadoc)
    * @see javax.servlet.GenericServlet#init(javax.servlet.ServletConfig)
    */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        this.servletConfig = servletConfig;
    }

    /*
    * (non-Javadoc)
    * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        WingsSession wingsSession = WingsSession.getSession(request, response);

        synchronized (request.getSession()) {
            String path = request.getServletPath();
            if (path == null)
                return;

            int pos = path.lastIndexOf('/');
            path = path.substring(pos + 1);
            ExternalizedResource extInfo = wingsSession.getExternalizeManager().getExternalizedResource(path);
            if (extInfo != null) {
                final Device outputDevice = DeviceFactory.createDevice(extInfo);
                try {
                    wingsSession.getExternalizeManager().deliver(extInfo, response, outputDevice);
                } finally {
                    outputDevice.close();
                }
            }
            else
                log.info("no resource with id " + path);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy