NOTE:
These slides have not been updated since 2003. They have been superseded by the book
Anders Møller and Michael Schwartzbach, February 2006 |
INTERACTIVE WEB SERVICES WITH JAVA |
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Enter extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Servlet Demo</title></head><body>" + "<form action=\"Hello\">" + "Enter your name: <input name=\"handle\" />" + "<input type=\"submit\" value=\"Continue\" /></form>" + "</body></html>"); } } |
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Hello extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = (String) request.getParameter("handle"); if (name==null) { response.sendError(response.SC_BAD_REQUEST, "Illegal request"); return; } response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Servlet Demo</title></head><body>"); ServletContext context = getServletContext(); if (context.getAttribute("users")==null) context.setAttribute("users", new Integer(0)); int users = ((Integer) context.getAttribute("users")).intValue() + 1; context.setAttribute("users", new Integer(users)); HttpSession session = request.getSession(true); session.setAttribute("name", name); out.println("<form action=\"Goodbye\">" + "Hello " + name + ", you are user number " + users + "<input type=\"submit\" value=\"Continue\" /></form>" + "</body></html>"); } } |
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Goodbye extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(false); if (session==null) { response.sendError(response.SC_BAD_REQUEST, "Illegal request"); return; } String name = (String) session.getAttribute("name"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><head><title>Servlet Demo</title></head><body>" + "Goodbye " + name + "</body></html>"); session.invalidate(); } } |
An equivalent program written in JWIG:
import java.io.*; import dk.brics.jwig.runtime.*; public class ExampleService extends Service { int counter = 0; synchronized int next() { return ++counter; } public class ExampleSession extends Session { XML wrapper = [[ <html><head><title>JWIG Demo</title></head> <body><[body]></body></html> ]]; XML form = [[ <form><[contents]> <input type="submit" value="Continue" /></form> ]]; XML hello = [[ Enter your name: <input name="handle" /> ]]; XML greeting = [[ Hello <[who]>, you are user number <[count]> ]]; XML goodbye = [[ Goodbye <[who]> ]]; public void main() throws IOException { XML x = wrapper<[body=form]; show x<[contents=hello]; String name = receive handle; show x<[contents=greeting<[who=name,count=next()]]; exit wrapper<[body=goodbye<[who=name]]; } } } |
Notable features in the JWIG version:
Look at other small examples.
COPYRIGHT © 2002-2003 ANDERS MØLLER & MICHAEL I. SCHWARTZBACH |