diff --git a/README.md b/README.md index fb0a7b6..774cc01 100644 --- a/README.md +++ b/README.md @@ -165,13 +165,19 @@ On Windows: You should now see something similar to: :::term - 2011-08-18 15:52:24.066:INFO::jetty-7.4.5.v20110725 - 2011-08-18 15:52:24.142:INFO::started o.e.j.s.ServletContextHandler{/,null} - 2011-08-18 15:52:24.168:INFO::Started SelectChannelConnector@0.0.0.0:5000 START + 2012-01-26 23:16:56.678:INFO:oejs.Server:jetty-7.5.4.v20111024 + 2012-01-26 23:16:56.886:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/.../src/main/webapp/},src/main/webapp + 2012-01-26 23:16:56.939:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:5000 STARTING Open the app in your browser: [http://localhost:5000](http://localhost:5000) + + If you see this error "org.apache.jasper.JasperException: java.err.nojdk" on windows (You must have JAVA_HOME pointing to JDK PATH), try this: + $ set PATH=%JAVA_HOME%\bin;%PATH% + $ set PORT=5000 + $ target\bin\webapp.bat + ## Declare Process Types With Procfile diff --git a/pom.xml b/pom.xml index e1ca90a..4224bc0 100644 --- a/pom.xml +++ b/pom.xml @@ -6,18 +6,30 @@ com.example 1.0-SNAPSHOT helloworld + + - org.eclipse.jetty - jetty-servlet - 7.4.5.v20110725 + org.eclipse.jetty.aggregate + jetty-webapp + 7.5.4.v20111024 + + - javax.servlet - servlet-api - 2.5 + org.eclipse.jdt.core.compiler + ecj + 3.7.1 + + + + + org.glassfish.web + jsp-impl + 2.1.3-b10 + diff --git a/src/main/java/HelloWorld.java b/src/main/java/HelloWorld.java index e04cc7c..f0f5034 100644 --- a/src/main/java/HelloWorld.java +++ b/src/main/java/HelloWorld.java @@ -1,24 +1,30 @@ import java.io.IOException; + import javax.servlet.ServletException; -import javax.servlet.http.*; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.servlet.*; +import org.eclipse.jetty.webapp.WebAppContext; public class HelloWorld extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - resp.getWriter().print("Hello from Java!\n"); + String name = req.getParameter("name"); + req.setAttribute("name", name == null ? "JSP" : name); + + // Forward to JSP + req.getRequestDispatcher("hello.jsp").forward(req, resp); } public static void main(String[] args) throws Exception{ Server server = new Server(Integer.valueOf(System.getenv("PORT"))); - ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); - context.setContextPath("/"); - server.setHandler(context); - context.addServlet(new ServletHolder(new HelloWorld()),"/*"); + server.setHandler(new WebAppContext("src/main/webapp", "/")); server.start(); server.join(); } + } diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..c0e1728 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,16 @@ + + + + HelloWorld Application + + + HelloWorldServlet + HelloWorld + + + + HelloWorldServlet + / + + + \ No newline at end of file diff --git a/src/main/webapp/hello.jsp b/src/main/webapp/hello.jsp new file mode 100644 index 0000000..23f4971 --- /dev/null +++ b/src/main/webapp/hello.jsp @@ -0,0 +1 @@ +Hello <%=request.getAttribute("name")%> \ No newline at end of file