package scalaz.example package http import scalaz._ import Scalaz._ import scalaz.http._ import response._ import request._ import Slinky._ import servlet._ import HttpServlet.resource final class ExampleApplication extends StreamStreamServletApplication { implicit val charset = UTF8 import Request._ def ok(s: String)(implicit request: Request[Stream]) = OK(ContentType, "text/html") << transitional << say(s) def say(s: String) = { <html> <body> <p> {s} </p> </body> </html> } def handle(implicit request: Request[Stream], servletRequest: HttpServletRequest): Option[Response[Stream]] = { request match { case MethodParts(GET, Nil) => Some(ok("Hello World")) case MethodParts(GET, "hello" :: name :: Nil) => Some(ok("Hello, %s" format (name))) case _ => None } } val application = new ServletApplication[Stream, Stream] { def application(implicit servlet: HttpServlet, servletRequest: HttpServletRequest, request: Request[Stream]) = { handle | resource(x => OK << x.toStream, NotFound.xhtml) } } }