import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
public class WeatherReportServlet extends HttpServlet {
private static WeatherDesc[] testData = {
new WeatherDesc("St. John's", 5.1, "sunny"),
new WeatherDesc("Ottawa", -10, "snowing"),
new WeatherDesc("Montreal", 2, "rain"),
};
private HashMap<String,WeatherDesc> weather
= new HashMap<String,WeatherDesc>();
public void init() {
for( WeatherDesc w : testData ) {
weather.put(w.getLocation(), w );
}
}
private WeatherDesc lookup( String loc ) {
return weather.get( loc );
}
protected void doGet(
HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
String path = request.getPathInfo();
path = path.substring(1);
WeatherDesc w = lookup( path );
out.println( "<?xml version='1.0'?>" );
out.println( "<weather>" );
out.println( "<location>" );
out.print( w.getLocation() );
out.println( "</location>" );
out.println( "<temperature>" );
out.print( w.getTemperature() );
out.println( "</temperature>" );
out.println( "<synopsis>" );
out.print( w.getSynopsis() );
out.println( "</synopsis>" );
out.println( "</weather>" );
}
}