public class ControlAB extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // path should not occur forward( request, response, View.VIEW_ERROR ); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // get session state HttpSession session = request.getSession(); // edited to generalize // get user information SessionBean sessionBean = (SessionBean)session.getAttribute( "sessionBean" ); String loginName = sessionBean.getLoginName(); // edited to generalize String loginType = userBean.getLoginType(); // edited to generalize // get DataBean version of input and return values BeanPerson dataBean = mapParamsToDataBean( request ); // edited to generalize dataBean.setOwner( loginName ); BeanPerson dataBeanNew; // get action requested String userAction = ( (String)(request.getParameter("userAction")) ).trim(); // edited to generalize // instatiate model ModelAB model = new ModelAB(); if ( (userAction.equalsIgnoreCase("Add")) ) { // call model dataBeanNew = model.add( dataBean ); // check results if (dataBeanNew == null ) { dataBean.setMessage( "Add Failed." ); request.setAttribute( "beanPerson", dataBean ); forward( request, response, View.VIEW_AB ); // process results } else { // set message to be returned dataBeanNew.setMessage( "Add OK." ); // set data to be returned request.setAttribute( "beanPerson", dataBeanNew ); // forward control/navigate forward( request, response, View.VIEW_AB ); } } else if ( another action ) { // error condition } else { DataBean db = new DataBean(); dataBean.setMessage( "ABJSP error: No userAction specified." ); request.setAttribute( "dataBean", db ); forward( request, response, View.VIEW_ERROR ); } } // ********** Utility Methods ********** public BeanPerson mapParamsToDataBean ( HttpServletRequest request ) { BeanPerson bean = new BeanPerson(); bean.setPersonID ( request.getParameter("personID") ); bean.setNameFirst ( request.getParameter("nameFirst") ); bean.setNameMiddle ( request.getParameter("nameMiddle") ); bean.setNameLast ( request.getParameter("nameLast") ); // process additional parameters // save reference to (possible) search result bean.setCollectionBeanID( request.getParameter("collectionBeanID") ); return bean; } // ****************** Navigation Methods ****************** private void forward(HttpServletRequest req, HttpServletResponse resp, int next ) throws ServletException, IOException { String url; switch ( next ) { // ab case View.VIEW_AB: url = "/ab.jsp"; break; // logout case View.VIEW_LOGOUT: url = "/logout.jsp"; break; // error case View.VIEW_ERROR: url = "/error.jsp"; break; // default default: url = "/error.jsp"; break; } // prepare to forward control RequestDispatcher disp = getServletContext().getRequestDispatcher( url ); // forward control disp.forward(req, resp); } }