#!/bin/bash scala -nocompdaemon -Dlog4j.mortbay.loglevel=WARN -classpath lib/jetty-6.1.7.jar:lib/jetty-util-6.1.7.jar:lib/servlet-api-2.5-6.1.3.jar $0 $@ & exit !# import org.mortbay.jetty.Server; import org.mortbay.jetty.servlet.Context; import org.mortbay.jetty.servlet.ServletHolder; import org.mortbay.jetty.servlet.DefaultServlet; import javax.servlet.http.{HttpServletRequest, HttpServletResponse}; object NonCachingDefaultServlet extends DefaultServlet() { private def setHeaders(response:HttpServletResponse) { response.setHeader("Cache-Control","no-cache"); // for HTTP 1.1 response.setHeader("Pragma","no-cache"); //for HTTP 1.0 response.setDateHeader ("Expires", 0); //for proxy server response.setHeader("Cache-Control","no-store"); //HTTP 1.1 } override def doGet(request:HttpServletRequest, response:HttpServletResponse) { setHeaders(response); super.doGet(request, response); } override def doHead(request:HttpServletRequest, response:HttpServletResponse) { setHeaders(response); super.doHead(request, response); } } val port = if (args.length >= 1) args(0).toInt else 80; val dir = if (args.length >= 2) args(1) else "www"; val server = new Server(port); val context = new Context(server, "/", Context.SESSIONS); context.setResourceBase(dir+"/"); context.addServlet(new ServletHolder(NonCachingDefaultServlet), "/"); context.setWelcomeFiles(Array[String]("index.html")); println("pid: "+java.lang.management.ManagementFactory.getRuntimeMXBean.getName.split("@")(0)); server.start(); server.join();