struts 2 - session 사용하기

Published on: 2009. 7. 5. 14:32 by louis.dev


일반적인 JSP 나 strusts1, Spring에서 Controller 에서 session을 처리하는 방법은 servlet 기반의 HttpServletRequest를 통해 session을 생성해서 써야 했다.

하지만 servlet기반이 아닌 struts 2는 ActionContext 라는 class를 사용해서 session을 생성하고 사용한다..

Action 에서 ActionContext를 통해 Map형식의 Session을 생성한후 Intercepter로 이동하여 session 객체에 담기게 된다.


1)ActionContext를 사용하여 session을 생성한 Action class 예제

---------------------------------------------------------------------------------------------------------
package com.myhome.login.actions;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class LoginMultiAction extends ActionSupport{
 
 private String id;
 private String passwd;
 
 
 /**
  * index 부분
  *
  */
 public String index() throws Exception{
  
  //session 값을 얻어 와서 id가 있으면 결과 페이지로 없으면 로그인 페이지로 이동
  if(ActionContext.getContext().getSession().get("id") == null)   //session에 id라는 이름의 value가 없으면 
   return LOGIN;
  
  return SUCCESS;
 }
 /**
  * login 부분
  *
  */
 
 @SuppressWarnings("unchecked")
 public String login() throws Exception{
  //session 생성을 위해서 ActionContext 사용
  ActionContext context = ActionContext.getContext();          //getContext() 메소드를 통해 ActionContext instance를 생성할 수 있다.
  //struts2에서 session type이 map형식이기 때문에 getSession을 통해 리턴 받는다.
  Map<String, String> session = context.getSession();
  //아래와 같이 HashMap을 통해서 session을 생성해도 된다.
  //Map<String, String> session = new HashMap<String, String>();

  
  session.put("id", id);
  session.put("passwd",passwd);
  context.setSession(session);
  
  return SUCCESS;
 }
 /**
  * logout 부분
  */
 @SuppressWarnings("unchecked")
 public String logout() throws Exception{
  ActionContext context = ActionContext.getContext();
  Map<String, String> session = (Map<String, String>)context.getSession();
  if(session.get("id") != null){
   session.remove("id");
   session.remove("passwd");
  }
  context.setSession(session);
  return SUCCESS;
 }
 
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getPasswd() {
  return passwd;
 }
 public void setPasswd(String passwd) {
  this.passwd = passwd;
 }
 
 
}
---------------------------------------------------------------------------------------------------------

'Framework > STRUTS 2' 카테고리의 다른 글

struts 2 - properties 파일  (1) 2009.07.05
struts 2 - upload & download  (0) 2009.07.05
struts 2 - action을 선언한 xml에서 result property 들  (0) 2009.07.05
struts 2 - validator  (0) 2009.07.03
struts 2 - annotation설정  (0) 2009.07.03