servlettag.ssi <html> <head> <title>Servlet Tag Test</title> </head> <body> <servlet name=DumpFormServlet init_var1 =1 init_var1 = 2 init_var2 = test init_var3 ='test value 1' init_var4 = "test value 2" > <param name=init_var1 value=1> <param name = init_var1 value = 2> <param name = init_var2 value = test> <param name=init_var3 value='test value 1'> <param name = init_var4 value = "test value 2"> </servlet> </body> </html> ================================================== DumpFormServlet.java /* * Copyright (c) 1998-2004 Servertec. All Rights Reserved. * * This software is the proprietary and confidential property of Servertec. * Use only in accordance with the terms of the license agreement. * * SERVERTEC MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY * OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE, OR NON-INFRINGEMENT. SERVERTEC SHALL NOT BE LIABLE FOR ANY * DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. * * THIS NOTICE MUST NOT BE ALTERED NOR REMOVED. * * CopyrightVersion 1.0 */ import java.util.Enumeration; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.ServletConfig; import javax.servlet.http.Cookie; import stec.lang.DString; import stec.iws.ServletConfigImpl; import stec.iws.Utils; import stec.iws.Request; import stec.iws.Response; public class DumpFormServlet extends BaseServlet { public void service(Request _request, Response _response) throws ServletException, IOException { PrintWriter writer = _response.getWriter(); writer.println("<html>"); writer.println("<head><title>Dump Form Servlet</title></head>"); writer.println("<body>"); ArgsServlet.args(writer, _request, _response); dumpInitParams(writer, _request); HeadersServlet.server_variables(writer, _request); HeadersServlet.headers(writer, _request); dumpFormData(writer, _request); dumpCookies(writer, _request, _response); writer.println("</body>"); writer.println("</html>"); } protected void dumpInitParams(PrintWriter writer, Request _request) throws IOException { writer.println("<h1>Init Parameters:</h1>"); String key; String values[]; ServletConfigImpl config = (ServletConfigImpl)getServletConfig(); Enumeration e = config.getInitParameterNames(); while(e.hasMoreElements()) { key = (String)e.nextElement(); values = config.getInitParameterValues(key); for(int i = 0; i < values.length; i++) { writer.println(key + "(" + i + ") = " + values[i] + "<br>"); } } } protected static void dumpFormData(PrintWriter writer, Request _request) throws IOException { writer.println("<h1>Form Data:</h1>"); writer.println("method = " + _request.getMethod() + "<br>"); writer.println("content length = " + _request.getContentLength() + "<br>"); String key; String values[]; Enumeration e = _request.getParameterNames(); while(e.hasMoreElements()) { key = (String)e.nextElement(); values = _request.getParameterValues(key); for(int i = 0; i < values.length; i++) { writer.println(key + "(" + i + ") = " + values[i] + "<br>"); } } } protected static void dumpCookies(PrintWriter writer, Request _request, Response _response) throws IOException { writer.println("<h1>Cookies:</h1>"); String charset = _response.getCharacterEncoding(); Cookie cookies[] = _request.getCookies(); for(int i = 0; i < cookies.length; i++) { writer.println(Utils.decodeURL(cookies[i].getName(), charset) + " = " + Utils.decodeURL(cookies[i].getValue(), charset) + "<br>"); } } } ================================================== BaseServlet.java /* * Copyright (c) 1998-2005 Servertec. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed 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. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * THIS NOTICE MUST NOT BE ALTERED NOR REMOVED. * * CopyrightVersion 1.0 */ import java.util.Locale; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import stec.iws.iws; import stec.iws.Request; import stec.iws.Response; public abstract class BaseServlet extends HttpServlet { public void service(HttpServletRequest _request, HttpServletResponse _response) throws ServletException, IOException { Request request = (Request)_request; Response response = (Response)_response; String charset = request.getCharset(); if(charset == null) { charset = iws.getDefaultCharset(); } String content_type = "text/html"; if(charset != null) { content_type = content_type + "; charset=" + charset; } _response.setContentType(content_type); String language; Locale locale = request.getLocale(); if(locale == null) { language = iws.getDefaultLanguage(); } else { language = locale.toString(); } if(language != null) { _response.setHeader("Content-Language", language.replace('_', '-')); } service(request, response); } public abstract void service(Request _request, Response _response) throws ServletException, IOException; }