Where The Streets Have No Name

DispatchAction 을 이용해서 인증하기 본문

Developement/Java

DispatchAction 을 이용해서 인증하기

highheat 2006. 4. 1. 01:34
DispatchAction을 이용해서 회원접근을 관리하는 방법이다. 

급조한 거라 이런식으로 하면된다는 것이고 나머지는 응용해서 하면된다. 

GuestLoginAction 클래스로 만들고 GuestAction 에서 

이를 상속받으면 간단하게 해결된다. 


* GuestLoginAction  

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

import org.apache.struts.action.ActionForm; 
import org.apache.struts.action.ActionForward; 
import org.apache.struts.action.ActionMapping; 
import org.apache.struts.actions.DispatchAction; 


public class GuestLoginAction extends DispatchAction{ 

   public ActionForward execute(ActionMapping mapping, 
           ActionForm form, 
           HttpServletRequest request, 
           HttpServletResponse response) 
    throws Exception{ 

       HttpSession session = request.getSession(); 

       String user = (String)session.getAttribute("user"); 

       if(user == null){ 

           return new ActionForward("/jsp/login.jsp", true); 

       }else{ 

        return dispatchMethod(mapping, 
               form, 
               request, 
               response, 
               getMethodName(mapping, form, request, response, "cmd")); 
        } 

   } 




* GuestAction 

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

import org.apache.struts.action.ActionForm; 
import org.apache.struts.action.ActionForward; 
import org.apache.struts.action.ActionMapping; 

import com.yuun.guest.form.GuestForm; 
import com.yuun.guest.model.Guest; 
import com.yuun.guest.model.GuestManager; 


public class GuestAction extends GuestLoginAction

   public ActionForward insert(ActionMapping mapping, 
           ActionForm form, 
           HttpServletRequest request, 
           HttpServletResponse response) 
    throws Exception{ 

       GuestForm guestForm = (GuestForm)form; 

       Guest guest = guestForm.getGuest(); 
       guest.setAgent(request.getHeader("user-agent")); 
       guest.setIp(request.getRemoteAddr()); 

       GuestManager manager = GuestManager.getInstance(); 
       manager.insert(guest); 

       String path = "/guest.do?cmd=list"; 

       return new ActionForward(path, true); 
   } 

   public ActionForward write(ActionMapping mapping, 
           ActionForm form, 
           HttpServletRequest request, 
           HttpServletResponse response) 
    throws Exception{ 

       return mapping.findForward("write"); 
   } 

   public ActionForward list(ActionMapping mapping, 
           ActionForm form, 
           HttpServletRequest request, 
           HttpServletResponse response) 
    throws Exception{ 

       GuestManager manager = GuestManager.getInstance(); 
       request.setAttribute("list", manager.getList()); 

       return mapping.findForward("list"); 
   } 

}