View Javadoc

1   package nl.geozet;
2   
3   import static nl.geozet.common.StringConstants.REQ_PARAM_ADRES;
4   import static nl.geozet.common.StringConstants.REQ_PARAM_STRAAL;
5   import static nl.geozet.common.StringConstants.REQ_PARAM_XCOORD;
6   import static nl.geozet.common.StringConstants.REQ_PARAM_YCOORD;
7   
8   import java.io.IOException;
9   
10  import javax.servlet.RequestDispatcher;
11  import javax.servlet.ServletException;
12  import javax.servlet.http.HttpServlet;
13  import javax.servlet.http.HttpServletRequest;
14  import javax.servlet.http.HttpServletResponse;
15  
16  import nl.geozet.common.ServletBase;
17  
18  import org.apache.log4j.Logger;
19  
20  /**
21   * GeozetServlet is een "dispatcher" voor de applicatie GEOZET viewer. De
22   * servlet bepaald op basis van de request parameters welke service wordt
23   * aangestuurd.
24   * 
25   * @author prinsmc@minlnv.nl
26   * @author strampel@atlis.nl
27   * @since 1.5
28   * @since Servlet API 2.5
29   * @note dispatcher naar OLS en WFS clients
30   */
31  public class GeozetServlet extends ServletBase {
32      /** generated serialVersionUID. */
33      private static final long serialVersionUID = -412117385071887803L;
34  
35      /** log4j logger. */
36      private static final Logger LOGGER = Logger.getLogger(GeozetServlet.class);
37  
38      /**
39       * In deze methode worden de request parametrs uitegelezen en wordt bepaald
40       * aan welke servlet het verzoek wordt toebedeeld voor verdere afhandeling.
41       * 
42       * @param request
43       *            the request
44       * @param response
45       *            the response
46       * @throws ServletException
47       *             the servlet exception
48       * @throws IOException
49       *             Signals that an I/O exception has occurred.
50       * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
51       *      response)
52       */
53      @Override
54      protected void service(HttpServletRequest request,
55              HttpServletResponse response) throws ServletException, IOException {
56          // controle voor wfs param, als er een coord paar en een straal is
57          // kunnen we de bekendmakingen ophalen
58          double xcoord = 0;
59          double ycoord = 0;
60          double straal = 0;
61          try {
62              // request params uitlezen voor het zoeken
63              xcoord = Double
64                      .valueOf(request.getParameter(REQ_PARAM_XCOORD.code));
65              ycoord = Double
66                      .valueOf(request.getParameter(REQ_PARAM_YCOORD.code));
67              straal = Double
68                      .valueOf(request.getParameter(REQ_PARAM_STRAAL.code));
69          } catch (final NullPointerException e) {
70              // niets doen
71              LOGGER.debug("Geen geldige request param gevonden voor WFS request.");
72          } catch (final NumberFormatException e) {
73              // niets doen
74              LOGGER.debug("Geen getal gevonden voor " + REQ_PARAM_XCOORD + ", "
75                      + REQ_PARAM_YCOORD + " of " + REQ_PARAM_STRAAL);
76          }
77          if ((xcoord > 0) && (ycoord > 0) && (straal > 0)) {
78              // naar de WFS om bekendmakingen op te halen want de minimale set
79              // param's is aanwezig
80              LOGGER.debug("Forwarding naar de WFS bekendmakingen client.");
81              final RequestDispatcher rd = this.getServletContext()
82                      .getRequestDispatcher("/" + this._BEKENDMAKINGEN);
83              rd.forward(request, response);
84              return;
85          }
86  
87          // controle voor OLS param's, als het zoekveld is gevuld adres opzoeken
88          final String zoekveld = request.getParameter(REQ_PARAM_ADRES.code);
89          if ((zoekveld != null) /* && (zoekveld != "") */) {
90              LOGGER.debug("Forwarding naar de OLS client.");
91              final RequestDispatcher rd = this.getServletContext()
92                      .getRequestDispatcher("/" + this._LOCATIE);
93              rd.forward(request, response);
94              return;
95          }
96  
97          // geen van de andere opties was succesvol dus we gaan naar het
98          // start/zoek formulier
99          LOGGER.debug("Forwarding naar de start pagina.");
100         final RequestDispatcher rd = this.getServletContext()
101                 .getRequestDispatcher("/index.jsp");
102         rd.forward(request, response);
103     }
104 }