;; Deze functie zet de data van de response map op het ServletResponse object
(defn- set-response-values [http-response response]
;; Loop over de headers
(doseq [[header value] (response :headers)]
(.setHeader http-response header value))
;; Set de response status
(.setStatus http-response (response :status)))
;; Deze functone zet een ServletRequest om in een request map
:: Momenteel enkel de content van de request
(defn- request-map [http-request]
{:body (edn/read (PushbackReader. (.getReader http-request)))})
(defn servlet [handler]
;; Maak een instantie van de abstracte HttpServlet class
(proxy [HttpServlet] []
;; Implementeer (override) de service method
(service [http-request http-response]
;; Zet de request om in data
(->> (request-map http-request)
;; voer de handler functie uit met de data
handler
;; zet de response map op de ServletResponse
(set-response-values http-response)))))
view raw Servlet2.clj hosted with ❤ by GitHub