// Copyright © 2002 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.

shell> cat HelloEntityServlet.java 

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import javax.rmi.*;



public class HelloEntityServlet extends HttpServlet {

    private Context ctx;
    private HelloEntityHome home;

    public HelloEntityServlet() throws NamingException
    {
        try {
            ctx = new InitialContext();
            home = (HelloEntityHome) PortableRemoteObject.narrow(ctx.lookup("HelloEntity"),
                                                                 HelloEntityHome.class);
        } catch (Exception e) { }
    }

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Entity Bean</title>");
        out.println("</head>");
        out.println("<body bgcolor=\"white\">");

        out.println("<h1> User Data: </h1>");

        String thename = request.getParameter("name");
        if (thename != null)
            {
                try
                    {
                        HelloEntity he = home.findByPrimaryKey(thename);
                        out.println("Name: "  + thename + "<br>");
                        out.println("Email: "  + he.getEmail() + "<br>");

                    } catch (Exception e) { out.println(e.toString()); }
            }
        else
            {
                out.println("<form name=\"lookup\" action=\"/HelloEntity/Hi\" method=\"GET\">");
                out.println("Lookup by name: <input type=\"text\" name=\"name\"><br>");
                out.println("<input type=\"submit\" value=\"Go\"></form><br><br>");

                out.println("<form name=\"add\" action=\"/HelloEntity/Hi\" method=\"POST\">");
                out.println("Or add a new entry<br><br>");
                out.println("Name: <input type=\"text\" name=\"name\"> ");
                out.println("Email: <input type=\"text\" name=\"email\"><br>");
                out.println("<input type=\"submit\" value=\"Go\"></form>");
            }
        out.println("</body>");
        out.println("</html>");
    } 


    public void doPost(HttpServletRequest request,
                       HttpServletResponse response)
        throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Entity Bean</title>");
        out.println("</head>");
        out.println("<body bgcolor=\"white\">");
        String thename = request.getParameter("name");
        String email = request.getParameter("email");
        if ( thename != "" && email != "" )
        {
            try {
                HelloEntity he = home.create(thename);
                he.setEmail(email);
                out.println("Added, thank you.  <a href=\"/HelloEntity/Hi\">Start Again</a>");
            } catch (Exception e) { out.println(e.toString()); }
        }
        else
        {
            out.println("Please specify name and email address.");
        }
        out.println("</body>");
        out.println("</html>");
    }
}