servletcontextmodelfactorybean.java

来自「anewssystem新闻发布系统集成使用了spring hibernate f」· Java 代码 · 共 130 行

JAVA
130
字号
package anni.core.web.freemarker;

import java.util.Enumeration;
import java.util.Hashtable;

import javax.servlet.GenericServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import freemarker.ext.servlet.ServletContextHashModel;

import freemarker.template.ObjectWrapper;

import org.springframework.beans.factory.config.AbstractFactoryBean;

import org.springframework.web.context.ServletContextAware;


/**
 * @version $Id: ServletContextModelFactoryBean.java,v 1.1 2005/07/04 15:02:14 turelto Exp $
 */
public class ServletContextModelFactoryBean extends AbstractFactoryBean
    implements ServletContextAware {
    /**
     * ServletContext.
     */
    private ServletContext servletContext;

    /**
     * @param servletContextIn ServletContext.s
     */
    public void setServletContext(ServletContext servletContextIn) {
        servletContext = servletContextIn;
    }

    /**
     * @return object type.
     */
    public Class getObjectType() {
        return ServletContextHashModel.class;
    }

    /**
     * @return Object ServletContextHashModel.
     * @throws ServletException ServletException
     */
    protected Object createInstance() throws ServletException {
        GenericServlet dummyServlet = new DummyServlet();
        dummyServlet.init(new DummyServletConfig(servletContext));

        return new ServletContextHashModel(dummyServlet,
            ObjectWrapper.DEFAULT_WRAPPER);
    }

    /**
     * 虚拟servlet.
     *
     * @since 2007-04-17
     */
    public static class DummyServlet extends GenericServlet {
        /**
         * 处理请求和响应.
         *
         * @param servletRequest ServletRequest
         * @param servletResponse ServletResponse
         */
        public void service(ServletRequest servletRequest,
            ServletResponse servletResponse) {
        }
    }

    /**
     * 虚拟servlet config.
     *
     * @since 2007-04-17
     */
    private static class DummyServletConfig implements ServletConfig {
        /**
         * ServletContext.
         */
        private ServletContext servletContext;

        /**
         * Hashtable.
         */
        private Hashtable hashtable = new Hashtable();

        /**
         * 构造方法.
         *
         * @param servletContextIn ServletContext
         */
        public DummyServletConfig(ServletContext servletContextIn) {
            servletContext = servletContextIn;
        }

        /**
         * @return String servlet name.
         */
        public String getServletName() {
            return DummyServlet.class.getName();
        }

        /**
         * @return ServletContext servlet context.
         */
        public ServletContext getServletContext() {
            return servletContext;
        }

        /**
         * @param distinguishedName String.
         * @return String always null
         */
        public String getInitParameter(String distinguishedName) {
            return null;
        }

        /**
         * @return Enumeration param names.
         */
        public Enumeration getInitParameterNames() {
            return hashtable.elements();
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?