import java.io.*; import java.util.*; import mixer.*; import javax.servlet.*; import javax.servlet.http.*; /* * 4.1.1 * Karl-Adam Karlsson * 06-11-04 * * Använder mixer för html filen nummer två. * Alltså måste two.html ligga i rätt mapp. * För mig, som inte gjort speciellt mycket med tomcatinställningarna är detta * examples mappen i tomcat. Jag utgåt ifrån att andra användare sjävla vet var * detta är för deras tomcat installation. * */ public class Linker extends HttpServlet { public void doGet( HttpServletRequest req, HttpServletResponse res ) throws IOException { Enumeration names = req.getParameterNames(); res.setContentType( "text/html" ); PrintWriter targetClient = res.getWriter(); //Observera att two.html skall ligga rätt i tomcat. String htmlTemplate = Mixer.getContent( getHtmlFile("two.html") ); Mixer m = new Mixer(htmlTemplate); //lite variabler vi använder. String tmpString, valString; String theLink=""; String[] tmpValues; LinkedList aList; boolean first=true; theLink = theLink.concat("http://localhost:8080/examples/servlet/Last?"); //Loopa igenom Parameternamn while( names.hasMoreElements() ){ if(!first) theLink = theLink.concat("&"); first=false; //SKAPAR LÄNKEN TILL NÄSTA //OBS ANNÄDER LOCAL HOST tmpString = (String)names.nextElement(); tmpValues = req.getParameterValues(tmpString); aList = new LinkedList( Arrays.asList(tmpValues) ); theLink = theLink.concat( tmpString+ "=" ); boolean doOnce = true; //Loopa igenom alla värden för parametern. while( aList.size()>0 ){ valString = (String)aList.getFirst(); valString = valString.replace(" ","+"); if(doOnce) theLink = theLink.concat( valString ); else{ theLink = theLink.concat( '+' + valString ); } doOnce=false; aList.removeFirst(); } } m.add("===linkone===", theLink+"+&Ost=Greve" ); m.add("===linktwo===", theLink+"+&Ost=Drabant" ); targetClient.println(m.getMix()); } /* * laddar en fil. * Samma metod som i förra upgiften * * * @param String name The name of the file to load * @return File The loaded file. */ private File getHtmlFile(String name){ File f = new File(getServletContext().getRealPath(name)); return f; } }