|
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 |
|