--- android/TrainInfoService/src/dk/thoerup/traininfoservice/LocateStations.java 2009/11/01 16:35:48 492 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/LocateStations.java 2010/09/16 14:04:28 1061 @@ -1,32 +1,37 @@ package dk.thoerup.traininfoservice; +import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; import java.sql.SQLException; - import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.simpleframework.xml.Serializer; +import org.simpleframework.xml.core.Persister; + +import dk.thoerup.android.traininfo.common.StationBean; + /** * Servlet implementation class LocateStations */ +@WebServlet(urlPatterns={"/LocateStations"}) public class LocateStations extends HttpServlet { private static final long serialVersionUID = 1L; Logger logger = Logger.getLogger( LocateStations.class.toString() ); + StationDAO stationDao = new StationDAO(); + - protected String transformToIntList(String input) { String strings[] = input.split(","); - + StringBuffer sb = new StringBuffer(); sb.append("("); for (int i = 0; i\n"); - buff.append("\n"); + ByteArrayOutputStream out = new ByteArrayOutputStream(); - try - { - res = stmt.executeQuery(); - - while (res.next()) { - buff.append("\n"); - - buff.append("").append( res.getInt(1) ).append("\n"); - buff.append("").append( res.getString(2) ) .append("\n"); - buff.append("").append( res.getDouble(3) ) .append("\n"); - buff.append("").append( res.getDouble(4) ) .append("\n"); - res.getString(5); - buff.append("").append( !res.wasNull() ) .append("\n"); - res.getString(6); - buff.append("").append( !res.wasNull() ) .append("\n"); - - String address = res.getString(7); - buff.append("
").append( res.wasNull() ? "" : address ).append("
"); - buff.append("").append( res.getInt(8) ) .append("\n"); - - buff.append("
\n"); - } - } finally { - if (res != null && !res.isClosed()) - res.close(); - if (stmt != null && !stmt.isClosed()) - stmt.close(); + try { + serializer.write(stations, out); + } catch (Exception e) { + throw new ServletException(e); } - buff.append("
\n"); - return buff.toString(); + + return out.toString(); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - Connection conn = null; + try { - conn = DBConnection.getConnection(); + StationBean stations = getStations(request); + - PreparedStatement stmt = createStatement(conn, request); - if (stmt != null){ - String xml = formatResultset(stmt); + if (stations != null){ + String xml = formatStations(stations); response.setContentType("text/xml"); response.getWriter().print(xml); @@ -143,13 +105,7 @@ } catch (Exception e) { logger.log(Level.SEVERE, "Exception while finding stations", e); response.sendError(500); - } finally { - try { - if (conn != null) { - conn.close(); - } - } catch (Exception t) {} - } + } } }