/samples/scalate-sample/src/main/scala/org/fusesource/scalate/sample/SampleServlet.scala

http://github.com/scalate/scalate · Scala · 49 lines · 20 code · 9 blank · 20 comment · 1 complexity · 679cc2000ff633a497132c5276149195 MD5 · raw file

  1. /**
  2. * Copyright (C) 2009-2011 the original author or authors.
  3. * See the notice.md file distributed with this work for additional
  4. * information regarding copyright ownership.
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the "License");
  7. * you may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. package org.fusesource.scalate.sample
  19. import java.util.Date
  20. import javax.servlet.http.HttpServlet
  21. import javax.servlet.http.HttpServletRequest
  22. import javax.servlet.http.HttpServletResponse
  23. import scala.compat.Platform
  24. class SampleServlet extends HttpServlet
  25. {
  26. override def doGet(request: HttpServletRequest, response: HttpServletResponse): Unit = {
  27. // Perform the business logic
  28. var headerNames = Set.empty[String]
  29. val iterator = request.getHeaderNames
  30. while (iterator.hasMoreElements)
  31. headerNames += iterator.nextElement.toString
  32. // Attach a model representing the result to the request object
  33. request.setAttribute("foo", new Foo(request.getPathInfo, headerNames))
  34. request.setAttribute("timestamp", new Date(Platform.currentTime))
  35. // Delegate response rendering to the SSP
  36. val ssp = "/WEB-INF/ssp/attributes.ssp"
  37. println("Now forwarding to SSP: " + ssp)
  38. request.getRequestDispatcher(ssp).forward(request, response)
  39. }
  40. }