import mixer.*; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class Dynamic extends HttpServlet{ File file = null; private static String htmlDynamic = null; //LŠser in html-dokumentet till strŠngen htmlDynamic vid initieringen public void init() throws ServletException{ if (htmlDynamic == null) { htmlDynamic = Mixer.getContent(new File(getServletContext().getRealPath("Dynamic.html"))); } } /*Skapar ny mixer av strŠngen och ersŠtter alla mix-strŠngar med dynamiskt framtagna miljšvariabler * det som Šr inom gŚr att upprepa 0 eller fler ggr, om 0 sŚ mŚste html-delen tas bort */ public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException { Mixer mix = new Mixer(htmlDynamic); res.setContentType("text/html"); PrintWriter out = res.getWriter(); Enumeration iter = null; String[] values = null; Cookie[] cookies = null; String tmp = null; mix.add("===servlname===", getServletName()); iter = getInitParameterNames(); if (iter.hasMoreElements()){ while (iter.hasMoreElements()){ tmp = (String)iter.nextElement(); mix.add("", "===initparname===", tmp); mix.add("", "===initpar===", getInitParameter(tmp)); } }else{ mix.removeHTML(""); } iter = getServletContext().getInitParameterNames(); if (iter.hasMoreElements()){ while (iter.hasMoreElements()){ tmp = (String)iter.nextElement(); mix.add("", "===continitparname===", tmp); mix.add("", "===continitpar===", getServletContext().getInitParameter(tmp)); } }else{ mix.removeHTML(""); } mix.add("===servname===", req.getServerName()); mix.add("===servport===", "" + req.getServerPort()); mix.add("===servinfo===", getServletContext().getServerInfo()); iter = getServletContext().getAttributeNames(); if (iter.hasMoreElements()){ while (iter.hasMoreElements()){ tmp = (String)iter.nextElement(); mix.add("", "===servattribname===", tmp); mix.add("", "===servattrib===", "" + getServletContext().getAttribute(tmp)); } }else{ mix.removeHTML(""); } mix.add("===majver===", "" + getServletContext().getMajorVersion()); mix.add("===minver===", "" + getServletContext().getMinorVersion()); mix.add("===jdkver===", System.getProperty("java.version")); mix.add("===remaddr===", req.getRemoteAddr()); mix.add("===remhost===", req.getRemoteHost()); mix.add("===remuser===", req.getRemoteUser()); mix.add("===authtype===", req.getAuthType()); iter = req.getHeaderNames(); if (iter.hasMoreElements()){ while (iter.hasMoreElements()){ tmp = (String)iter.nextElement(); mix.add("", "===headname===", tmp); mix.add("", "===head===", "" + req.getHeader(tmp)); } }else{ mix.removeHTML(""); } mix.add("===querstr===", "" + req.getQueryString()); mix.add("===charenc===", "" + req.getCharacterEncoding()); mix.add("===contlength===", Integer.toString(req.getContentLength())); mix.add("===conttype===", req.getContentType()); iter = req.getParameterNames(); if (iter.hasMoreElements()){ while (iter.hasMoreElements()){ tmp = (String)iter.nextElement(); mix.add("", "===reqpar===", tmp); values = req.getParameterValues(tmp); for(int i = 0; i < values.length; i++){ mix.add("", "===reqvalname===", "Value nr" + i+1); mix.add("", "===reqvalpar===", "" + values[i]); } } }else{ mix.removeHTML(""); } cookies = req.getCookies(); if (cookies != null){ for(int i = 0; i < cookies.length; i++){ mix.add("", "===coocyname===", "" + cookies[i].getName()); mix.add("", "===coocpar===", "" + cookies[i].getValue()); } }else{ mix.removeHTML(""); } mix.add("===pathinfo===", "" + req.getPathInfo()); mix.add("===translpath===", "" + req.getPathTranslated()); mix.add("===requri===", req.getRequestURI()); mix.add("===requrl===", "" + req.getRequestURL()); mix.add("===reqsch===", req.getScheme()); mix.add("===contpath===", req.getContextPath()); mix.add("===servpath===", req.getServletPath()); mix.add("===reqprot===", req.getProtocol()); mix.add("===reqmeth===", req.getMethod()); iter = req.getAttributeNames(); if (iter.hasMoreElements()){ while (iter.hasMoreElements()){ tmp = (String)iter.nextElement(); mix.add("", "===reqattribname===", tmp); mix.add("", "===reqattrib===", "" + req.getAttribute(tmp)); } }else{ mix.removeHTML(""); } out.println(mix.getMix()); } }