* ȸ¿ø°¡ÀÔ * ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£ ã±â ID Password
Last Modified : 2008.06.29

¸ðµ¨2 °Ô½ÃÆÇ

ÄÁÆ®·Ñ·¯ÀÎ UserServlet ¼­ºí¸´ ±¸Çö

UserServlet.java

package com.dadam.model2;

import javax.servlet.*;
import javax.servlet.http.*;

import com.dadam.model2.action.Action;

import java.io.*;

public class UserServlet extends HttpServlet {
	
  public void doPost ( HttpServletRequest request,
    HttpServletResponse response ) throws ServletException, IOException {

    ActionForward forward = null;
    Action action = null;

    try {
      UserCommandFactory cf = UserCommandFactory.getInstance();

      String url = request.getServletPath();
      action = cf.getAction(url);

      forward = action.execute(request, response);
    } catch ( Exception e) {
      throw new ServletException(e.getMessage());
    }

    if ( forward.isRedirect() ) {
      response.sendRedirect( forward.getPath() );
    } else {
      ServletContext sc = getServletContext();
      RequestDispatcher rd = sc.getRequestDispatcher(forward.getPath());
      rd.forward(request, response);
    }

  }

  public void doGet ( HttpServletRequest request,
    HttpServletResponse response ) throws ServletException, IOException {
    doPost(request, response);
  }
}

UserCommandFactory.java

package com.dadam.model2;

import com.dadam.model2.action.*;

public class UserCommandFactory {
	
  private static UserCommandFactory instance = new UserCommandFactory();
	
  private UserCommandFactory() {}
	
  public static UserCommandFactory getInstance() {
    return instance; 
  }
	
  public Action getAction ( String url ) throws Exception {
		
    Action action = null;
		
    if ( url.startsWith("/model2/list.dam") ) {
      action = new ListAction();
    } else if ( url.startsWith("/model2/view.dam") ) {
      action = new ViewAction();
    } else if ( url.startsWith("/model2/modify_form.dam") ) {
      action = new ModifyFormAction();
    } else if ( url.startsWith("/model2/modify_proc.dam") ) {
      action = new ModifyAction();
    } else if ( url.startsWith("/model2/delete_proc.dam") ) {
      action = new DeleteAction();
    } else if ( url.startsWith("/model2/write_form.dam") ) {
      action = new WriteFormAction();
    } else if ( url.startsWith("/model2/write_proc.dam") ) {
      action = new WriteAction();
    }

    return action;
  }
}

ActionForward.java

package com.dadam.model2;

public class ActionForward {
	
  private boolean isRedirect = false;
  private String path = null;

  public boolean isRedirect() {
    return isRedirect;
  }

  public String getPath() {
    return path;
  }

  public void setRedirect ( boolean isRedirect ) {
    this.isRedirect = isRedirect;
  }

  public void setPath ( String path ) {
    this.path = path;
  }

}

Action.java

package com.dadam.model2.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dadam.model2.*;

public interface Action {
	
  public  ActionForward execute (HttpServletRequest request,
    HttpServletResponse response ) throws Exception;
}

ListAction.java

import com.dadam.board.*;

import java.util.*;
import net.java_school.util.*;

public class ListAction implements Action {
	
  public ActionForward execute (
    HttpServletRequest request,
    HttpServletResponse response) throws Exception {
    
    // Parameter
    int cur_page = (request.getParameter("cur_page") == null) ? 1 :	
    Integer.parseInt(request.getParameter("cur_page"));
    String board = request.getParameter("board");
    if ( board == null ) {
      board = "notice";
    }

    int num_per_page = 7;
    GulManager gulManager = new GulManager();
    ArrayList gulList = gulManager.findGulList( cur_page, num_per_page, board );
    int total_record = 	gulManager.getTotalRecord(board);

    request.setAttribute("gulList", gulList);
    request.setAttribute("total_record", new Integer(total_record));
    request.setAttribute("board", board);
    request.setAttribute("num_per_page", new Integer(num_per_page));
    request.setAttribute("cur_page", new Integer(cur_page));

    ActionForward forward = new ActionForward();
    forward.setPath("/model2/list.jsp");

    return forward;

  }
}

ViewAction.java

package com.dadam.model2.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dadam.model2.*;
import com.dadam.board.*;

public class ViewAction implements Action {
	
  public ActionForward execute (
    HttpServletRequest request,
    HttpServletResponse response) throws Exception {

    // Parameter
    String cur_page = request.getParameter("cur_page");
    String board = request.getParameter("board");
    String number = request.getParameter("number");

    GulManager gulManager = new GulManager();
    Gul gul = gulManager.findGul( Integer.parseInt(number) );

    request.setAttribute("gul", gul);
    request.setAttribute("board", board);
    request.setAttribute("cur_page", cur_page);
    request.setAttribute("number", number);

    ActionForward forward = new ActionForward();
    forward.setPath("/model2/view.jsp");

    return forward;
  }
}

ModifyFormAction.java

package com.dadam.model2.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dadam.model2.*;
import com.dadam.board.*;

public class ModifyFormAction implements Action {
	
  public ActionForward execute (
    HttpServletRequest request,
    HttpServletResponse response) throws Exception {

    // Parameter
    String cur_page = request.getParameter("cur_page");
    String board = request.getParameter("board");
    String number = request.getParameter("number");

    GulManager gulManager = new GulManager();
    Gul gul = gulManager.findGul( Integer.parseInt(number) );

    request.setAttribute("gul", gul);
    request.setAttribute("board", board);
    request.setAttribute("cur_page", cur_page);
    request.setAttribute("number", number);

    ActionForward forward = new ActionForward();
    forward.setPath("/model2/modify_form.jsp");

    return forward;
  }
}

ModifyAction.java

package com.dadam.model2.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dadam.model2.*;
import com.dadam.board.*;

public class ModifyAction implements Action {
	
  public ActionForward execute (
    HttpServletRequest request,
    HttpServletResponse response) throws Exception {

    // Parameter
    request.setCharacterEncoding("EUC-KR");
    String cur_page = request.getParameter("cur_page");	
    String board = request.getParameter("board");
    String number = request.getParameter("number");
    String subject = request.getParameter("subject");
    String content = request.getParameter("content");

    Gul gul = new Gul();
    gul.setSubject(subject);
    gul.setContent(content);
    gul.setBcode(board);
    gul.setGulno(Integer.parseInt(number));

    GulManager gulManager = new GulManager();
    int success = gulManager.update( gul );

    ActionForward forward = new ActionForward();
    forward.setRedirect(true);
    String path = null;
    if ( success > 0 ) {
      path = "view.dam?number="+number+"&cur_page="+cur_page+"&board="+board;
      forward.setPath(path);
    } else {
      path = "modify_form.dam?number="+number+"&cur_page="+cur_page+"&board="+board;
      forward.setPath(path);
    }

    return forward;

  }
}

DeleteAction.java

package com.dadam.model2.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dadam.model2.*;
import com.dadam.board.*;

public class DeleteAction implements Action {
	
  public ActionForward execute (
      HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    // Parameter
    String cur_page = request.getParameter("cur_page");	
    String board = request.getParameter("board");
    String number = request.getParameter("number");

    GulManager gulManager = new GulManager();
    gulManager.remove( Integer.parseInt(number) );

    String path = null;
    ActionForward forward = new ActionForward();
    forward.setRedirect(true);
    path = "list.dam?board="+board+"&cur_page="+cur_page;
    forward.setPath( path );

    return forward;
  }
}

WriteFormAction.java

package com.dadam.model2.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dadam.model2.*;

public class WriteFormAction implements Action {
	
  public ActionForward execute (
      HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    // Parameter
    String cur_page = request.getParameter("cur_page");	
    String board = request.getParameter("board");

    request.setAttribute("cur_page", cur_page);
    request.setAttribute("board", board);

    ActionForward forward = new ActionForward();
    forward.setPath("/model2/write_form.jsp");

    return forward;
  }
}

WriteAction.java

package com.dadam.model2.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dadam.model2.*;
import com.dadam.board.*;

public class WriteAction implements Action {
	
  public ActionForward execute (
      HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    // Parameter
    request.setCharacterEncoding("EUC-KR");
    String cur_page = request.getParameter("cur_page");	
    String board = request.getParameter("board");
    String subject = request.getParameter("subject");
    String content = request.getParameter("content");

    Gul gul = new Gul();
    gul.setSubject(subject);
    gul.setContent(content);
    gul.setBcode(board);

    GulManager gulManager = new GulManager();
    gulManager.create(gul);

    ActionForward forward = new ActionForward();
    forward.setRedirect(true);
    String path = "list.dam?board="+board;
    forward.setPath(path);

    return forward;
  }
}

model1 JSP ¼Ò½º
model2 JSP ¼Ò½º
model1,model2 ÀÚ¹Ù ¼Ò½º