Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.struts2.jasper.runtime; import org.apache.struts2.jasper.compiler.Localizer; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.HttpJspPage; import javax.servlet.jsp.JspFactory; import java.io.IOException; /** * This is the super class of all JSP-generated servlets. * * @author Anil K. Vijendran */ public abstract class HttpJspBase extends HttpServlet implements HttpJspPage { static { if (JspFactory.getDefaultFactory() == null) { JspFactoryImpl factory = new JspFactoryImpl(); if (System.getSecurityManager() != null) { String basePackage = "org.apache.struts2.jasper."; try { factory.getClass().getClassLoader() .loadClass(basePackage + "runtime.JspFactoryImpl$PrivilegedGetPageContext"); factory.getClass().getClassLoader() .loadClass(basePackage + "runtime.JspFactoryImpl$PrivilegedReleasePageContext"); factory.getClass().getClassLoader().loadClass(basePackage + "runtime.JspRuntimeLibrary"); factory.getClass().getClassLoader() .loadClass(basePackage + "runtime.JspRuntimeLibrary$PrivilegedIntrospectHelper"); factory.getClass().getClassLoader() .loadClass(basePackage + "runtime.ServletResponseWrapperInclude"); factory.getClass().getClassLoader().loadClass(basePackage + "servlet.JspServletWrapper"); } catch (ClassNotFoundException ex) { org.apache.commons.logging.LogFactory.getLog(HttpJspBase.class) .error("Jasper JspRuntimeContext preload of class failed: " + ex.getMessage(), ex); } } JspFactory.setDefaultFactory(factory); } } protected HttpJspBase() { } public final void init(ServletConfig config) throws ServletException { super.init(config); jspInit(); _jspInit(); } public String getServletInfo() { return Localizer.getMessage("jsp.engine.info"); } public final void destroy() { jspDestroy(); _jspDestroy(); } /** * Entry point into service. */ public final void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { _jspService(request, response); } public void jspInit() { } public void _jspInit() { } public void jspDestroy() { } protected void _jspDestroy() { } public abstract void _jspService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException; }