StudentClient.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:15k
源码类别:

Java编程

开发平台:

Java

  1. package bmpsample;
  2. //package j2eebootcamp.developingEJB.chapter9.web.servlet;
  3. /**
  4.  *
  5.  * StudentClient
  6.  *
  7.  *
  8.  * Author:  Pravin Tulachan, pvt@javacamp.com
  9.  * Date: Sept 15 2001
  10.  * Version: 1.0
  11.  *
  12.  */
  13. import javax.servlet.*;
  14. import javax.servlet.http.*;
  15. import java.io.*;
  16. import javax.jms.*;
  17. import javax.naming.*;
  18. import java.sql.*;
  19. import java.util.*;
  20. import java.rmi.*;
  21. import javax.rmi.PortableRemoteObject;
  22. import javax.ejb.*;
  23. //import j2eebootcamp.developingEJB.chapter9.student.StudentHome;
  24. //import j2eebootcamp.developingEJB.chapter9.student.Student;
  25. public class StudentClient
  26.     extends HttpServlet {
  27.   Context jndictx = null;
  28.   private StudentBmpHome studentHome = null;
  29.   private StudentBmp student = null;
  30.   private String primaryKey = null;
  31.   String password = null;
  32.   String first = null;
  33.   String last = null;
  34.   String email = null;
  35.   String phone = null;
  36.   String company = null;
  37.   public void init() {
  38.     //look up jndi context
  39.     try {
  40.       jndictx = new InitialContext();
  41.       studentHome = (StudentBmpHome) PortableRemoteObject.narrow(jndictx.lookup(
  42.           "StudentBmp"), StudentBmpHome.class);
  43.     }
  44.     catch (NamingException ne) {
  45.       System.out.println(" Error creating JNDI context: " + ne.toString());
  46.       System.exit(1);
  47.     }
  48.     catch (Exception e) {
  49.       System.out.println(" init() :" + e.getMessage());
  50.       System.exit(1);
  51.     }
  52.   }
  53.   public void doPost(HttpServletRequest req, HttpServletResponse resp) {
  54.     String action = req.getParameter("requestAction");
  55.     if (action.equals("CreateStudent")) {
  56.       System.out.println(" Servlet -- Create Student ");
  57.       createStudent(req, resp);
  58.     }
  59.     else if (action.equals("GetCollection")) {
  60.       System.out.println("--- StudentClient -- look for collection ---");
  61.       searchByCompany(req, resp);
  62.     }
  63.     else if (action.equals("ListSchedules")) {
  64.       System.out.println("--- StudentClient -- list schedules---");
  65.       try {
  66.         listAllClasses(req, resp);
  67.       }
  68.       catch (RemoteException re) {
  69.         System.out.println(" remote exception " + re.getMessage());
  70.       }
  71.     }
  72.     else if (action.equals("AddSchedule")) {
  73.       System.out.println("--- StudentClient -- add a schedue to the Roster ---");
  74.       try {
  75.         addAClass(req, resp);
  76.       }
  77.       catch (RemoteException re) {
  78.         System.out.println(" remote exception " + re.getMessage());
  79.       }
  80.     }
  81.     else if (action.equals("DeleteSchedule")) {
  82.       System.out.println(
  83.           "--- StudentClient -- remove a schedule from the Roster ---");
  84.       try {
  85.         deleteAClass(req, resp);
  86.       }
  87.       catch (RemoteException re) {
  88.         System.out.println(" remote exception " + re.getMessage());
  89.       }
  90.     }
  91.     else {
  92.       try {
  93.         student = studentHome.findByPrimaryKey(primaryKey);
  94.         if (action.equals("ModifyPassword")) {
  95.           String newPassword = req.getParameter("NewPassword");
  96.           modifyPassword(req, resp, newPassword);
  97.         }
  98.         else if (action.equals("ModifyFirstName")) {
  99.           String newFirstName = req.getParameter("NewFirstName");
  100.           modifyFirstName(req, resp, newFirstName);
  101.         }
  102.         else if (action.equals("ModifyLastName")) {
  103.           String newLastName = req.getParameter("NewLastName");
  104.           modifyLastName(req, resp, newLastName);
  105.         }
  106.         else if (action.equals("ModifyPhone")) {
  107.           String newPhone = req.getParameter("NewPhone");
  108.           modifyPhone(req, resp, newPhone);
  109.         }
  110.         else if (action.equals("ModifyEmail")) {
  111.           String newEmail = req.getParameter("NewEmail");
  112.           modifyEmail(req, resp, newEmail);
  113.         }
  114.         else if (action.equals("ModifyCompanyName")) {
  115.           String newCompanyName = req.getParameter("NewCompanyName");
  116.           modifyCompanyName(req, resp, newCompanyName);
  117.         }
  118.         else if (action.equals("RemoveStudent")) {
  119.           String studentID = req.getParameter("StudentID");
  120.           removeStudent(req, resp, studentID);
  121.         }
  122.         else {
  123.           System.out.println("StudentClient -- Unknown request!");
  124.         }
  125.       }
  126.       catch (FinderException fe) {
  127.         System.out.println(" StudentClient finder exception =" + fe.getMessage());
  128.       }
  129.       catch (RemoteException re) {
  130.         System.out.println(" StudentClient remote exception =" + re.getMessage());
  131.       }
  132.       catch (Exception e) {
  133.         System.out.println(" StudentClient exception =" + e.getMessage());
  134.       }
  135.     } //if-else
  136.   }
  137.   public void createStudent(HttpServletRequest req, HttpServletResponse resp) {
  138.     // read the input parameters and then call appropriate method method
  139.     System.out.println("************ StudentClient ************n");
  140.     primaryKey = req.getParameter("PrimaryKey");
  141.     password = req.getParameter("Password");
  142.     first = req.getParameter("First");
  143.     last = req.getParameter("Last");
  144.     email = req.getParameter("Email");
  145.     phone = req.getParameter("Phone");
  146.     company = req.getParameter("Company");
  147.     try {
  148.       //access the EJB
  149.       System.out.println("****** StudentClient() -- before create() ***");
  150.       student = studentHome.create(primaryKey, password, first, last, email,
  151.                                    phone, company);
  152.       //set attribute to pass it off to jsp page
  153.       req.setAttribute("PrimaryKey", primaryKey);
  154.       req.setAttribute("OldPassword", password);
  155.       req.setAttribute("OldFirstName", first);
  156.       req.setAttribute("OldLastName", last);
  157.       req.setAttribute("OldEmail", email);
  158.       req.setAttribute("OldPhone", phone);
  159.       req.setAttribute("OldCompanyName", company);
  160.       //call the JSP
  161.       RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(
  162.           "/ModifyStudent.jsp");
  163.       dispatcher.forward(req, resp);
  164.     }
  165.     catch (CreateException ce) {
  166.       System.out.println(" create exception =" + ce.getMessage());
  167.     }
  168.     catch (ServletException e) {
  169.       System.out.println("servlet exception =" + e.getMessage());
  170.     }
  171.     catch (RemoteException e) {
  172.       System.out.println(" remote exception =" + e.getMessage());
  173.     }
  174.     catch (IOException e) {
  175.       System.out.println(" io exception =" + e.getMessage());
  176.     }
  177.   }
  178.   public void searchByCompany(HttpServletRequest req, HttpServletResponse resp) {
  179.     // read the input parameters and then call appropriate method method
  180.     System.out.println("nn************ StudentClient ************n");
  181.     company = req.getParameter("Company");
  182.     try {
  183.       //access the EJB
  184.       System.out.println(
  185.           "****** StudentClient() -- before searchByCompany() ***");
  186.       ArrayList primaryKeyList = (ArrayList) studentHome.findByCompanyName(
  187.           company);
  188.       Iterator i = primaryKeyList.iterator();
  189.       while (i.hasNext()) {
  190.         StudentBmp stud = (StudentBmp) i.next();
  191.         String studentID = (String) stud.getPrimaryKey();
  192.         System.out.println("StudentClient list - collection id : " + studentID +
  193.                            "n");
  194.       }
  195.       req.setAttribute("pKeyList", primaryKeyList);
  196.       req.setAttribute("companyName", company);
  197.       //call the JSP
  198.       RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(
  199.           "/DisplayCollection.jsp");
  200.       dispatcher.forward(req, resp);
  201.     }
  202.     catch (FinderException fe) {
  203.       System.out.println(" finder exception =" + fe.getMessage());
  204.     }
  205.     catch (ServletException e) {
  206.       System.out.println("servlet exception =" + e.getMessage());
  207.     }
  208.     catch (RemoteException e) {
  209.       System.out.println(" remote exception =" + e.getMessage());
  210.     }
  211.     catch (IOException e) {
  212.       System.out.println(" io exception =" + e.getMessage());
  213.     }
  214.   }
  215.   public void modifyPassword(HttpServletRequest req, HttpServletResponse resp,
  216.                              String newPassword) throws RemoteException {
  217.     System.out.println(" *** StudentClient -- modidfyPassword() newPassowrd = " +
  218.                        newPassword);
  219.     student.setPassword(newPassword);
  220.     password = student.getPassword();
  221.     callJSP(req, resp);
  222.   }
  223.   public void modifyCompanyName(HttpServletRequest req,
  224.                                 HttpServletResponse resp, String newCompanyName) throws
  225.       RemoteException {
  226.     System.out.println(
  227.         " *** StudentClient -- modidfyCompanyName() newCompanyName = " +
  228.         newCompanyName);
  229.     student.setCompanyName(newCompanyName);
  230.     String changedCompanyName = student.getCompanyName();
  231.     System.out.println(" modidfyCompanyName() Get New CompanyName =" +
  232.                        changedCompanyName);
  233.     company = changedCompanyName;
  234.     callJSP(req, resp);
  235.   }
  236.   public void modifyFirstName(HttpServletRequest req, HttpServletResponse resp,
  237.                               String newFirstName) throws RemoteException {
  238.     System.out.println(
  239.         " *** StudentClient -- modidfyFirstName() newFirstName = " +
  240.         newFirstName);
  241.     student.setFirstName(newFirstName);
  242.     String changedFirstName = student.getFirstName();
  243.     System.out.println(" modidfyFirstName() Get New Firstname =" +
  244.                        changedFirstName);
  245.     first = changedFirstName;
  246.     callJSP(req, resp);
  247.   }
  248.   public void modifyLastName(HttpServletRequest req, HttpServletResponse resp,
  249.                              String newLastName) throws RemoteException {
  250.     System.out.println(" *** StudentClient -- modidfyLastName() newLastName = " +
  251.                        newLastName);
  252.     student.setLastName(newLastName);
  253.     String changedLastName = student.getLastName();
  254.     System.out.println(" modidfyLastName() Get New LastName =" +
  255.                        changedLastName);
  256.     last = changedLastName;
  257.     callJSP(req, resp);
  258.   }
  259.   public void modifyPhone(HttpServletRequest req, HttpServletResponse resp,
  260.                           String newPhone) throws RemoteException {
  261.     System.out.println(" *** StudentClient -- modidfyPhone() newPhone = " +
  262.                        newPhone);
  263.     student.setPhone(newPhone);
  264.     String changedPhone = student.getPhone();
  265.     System.out.println(" modidfyPhone() Get New Phone =" + changedPhone);
  266.     phone = changedPhone;
  267.     callJSP(req, resp);
  268.   }
  269.   public void modifyEmail(HttpServletRequest req, HttpServletResponse resp,
  270.                           String newEmail) throws RemoteException {
  271.     System.out.println(" *** StudentClient -- modidfyEmail() newEmail = " +
  272.                        newEmail);
  273.     student.setEmail(newEmail);
  274.     String changedEmail = student.getEmail();
  275.     System.out.println(" modidfyEmail() Get New Email =" + changedEmail);
  276.     email = changedEmail;
  277.     callJSP(req, resp);
  278.   }
  279.   public void removeStudent(HttpServletRequest req, HttpServletResponse resp,
  280.                             String studentID) throws RemoteException {
  281.     System.out.println("n *** StudentClient -- removeStudent() studentID = " +
  282.                        studentID);
  283.     try {
  284.       student.remove();
  285.       req.setAttribute("removed", studentID);
  286.       System.out.println(" removed a student ");
  287.       //call the JSP
  288.       RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(
  289.           "/ConfirmDelete.jsp");
  290.       dispatcher.forward(req, resp);
  291.     }
  292.     catch (RemoveException e) {
  293.       System.out.println(" remove exception " + e.getMessage());
  294.     }
  295.     catch (ServletException e) {
  296.       System.out.println("servlet exception =" + e.getMessage());
  297.     }
  298.     catch (RemoteException e) {
  299.       System.out.println(" remote exception =" + e.getMessage());
  300.     }
  301.     catch (IOException e) {
  302.       System.out.println(" io exception =" + e.getMessage());
  303.     }
  304.   }
  305.   private void callJSP(HttpServletRequest req, HttpServletResponse resp) {
  306.     System.out.println("n*** in StudentClient -- callJSP() **********");
  307.     //System.out.println(" -- firstName = "+first+",  lastName="+last);
  308.     //set attribute to pass it off to jsp page
  309.     req.setAttribute("PrimaryKey", primaryKey);
  310.     req.setAttribute("OldPassword", password);
  311.     req.setAttribute("OldFirstName", first);
  312.     req.setAttribute("OldLastName", last);
  313.     req.setAttribute("OldEmail", email);
  314.     req.setAttribute("OldPhone", phone);
  315.     req.setAttribute("OldCompanyName", company);
  316.     try {
  317.       RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(
  318.           "/ModifyStudent.jsp");
  319.       dispatcher.forward(req, resp);
  320.     }
  321.     catch (ServletException se) {
  322.       System.out.println(" *** StudentClient dispatcher error =" +
  323.                          se.getMessage());
  324.     }
  325.     catch (Exception e) {
  326.       System.out.println(" error =" + e.getMessage());
  327.     }
  328.   }
  329. // --------------------- roster related calls ----------------------
  330.   public void addAClass(HttpServletRequest req, HttpServletResponse resp) throws
  331.       RemoteException {
  332.     System.out.println(" *** StudentClient -- addAClass() --------- ");
  333.     String schedID = req.getParameter("ScheduleID");
  334.     try {
  335.       student.addASchedule(schedID);
  336.     }
  337.     catch (RosterDAOException ex) {
  338.     }
  339.     listAllClasses(req, resp);
  340.   }
  341.   public void deleteAClass(HttpServletRequest req, HttpServletResponse resp) throws
  342.       RemoteException {
  343.     System.out.println(" *** StudentClient -- deleteAClass() --------- ");
  344.     String schedID = req.getParameter("ScheduleID");
  345.     try {
  346.       student.deleteASchedule(schedID);
  347.     }
  348.     catch (RosterDAOException ex) {
  349.     }
  350.     listAllClasses(req, resp);
  351.   }
  352.   public void listAllClasses(HttpServletRequest req, HttpServletResponse resp) throws
  353.       RemoteException {
  354.     Vector list = new Vector(20);
  355.     try {
  356.       list = student.getScheduleList();
  357.     }
  358.     catch (RosterDAOException ex) {
  359.     }
  360.     System.out.println(
  361.         " *** StudentClient -- listAllClasses() ------- size => " + list.size());
  362.     for (int i = 0; i < list.size(); i++) {
  363.       System.out.println("-- StudentClient -- schedule -->" + list.get(i));
  364.     }
  365.     req.setAttribute("schedList", list);
  366.     try {
  367.       RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(
  368.           "/DisplayClassList.jsp");
  369.       dispatcher.forward(req, resp);
  370.     }
  371.     catch (ServletException se) {
  372.       System.out.println(" *** StudentClient dispatcher error =" +
  373.                          se.getMessage());
  374.     }
  375.     catch (Exception e) {
  376.       System.out.println(" error =" + e.getMessage());
  377.     }
  378.   }
  379. } //;-) end of the Servlet client.