스트럿츠 세션을 알아보자


안녕하세요.
고코더 입니다.


오늘은 스트럿츠2에서 session을 사용하는 방법을 알아보려고 합니다.
스트럿츠는 자체적인 세션 처리기능을 제공 합니다.  
스트럿츠 action에서는 servlet을 사용하지 않기 때문에 메세드를 사용하게 됩니다. 
ActionContext안에 getSession 메세드를 사용합니다. 



 1. session 사용법


세션을 선언하는 방법
세션을 사용하는 기본 문법입니다. ActionContext안에 세션 메소드를 가져와
map 형태로 반환하므로 이를 맵에 담는 형식입니다.

1
2
ActionContext con = ActionContext.getContext();
Map session = con.getSession();
cs

세션에 데이터를 입력하는 방법
세션에 데이터를 넣는 방법은 간단합니다. map 형식이기에 변수를 설정하고 데이터를 입력합니다.
1
session.put("변수", 입력);
cs
세션에 데이터를 출력하는 방법
이 또한 단순합니다. 
1
session.get("변수");
cs

 2. 세션을 이용해 코딩을 해봅시다.


지난 시간에 개발한 코드에 얹어서 해당 세션을 개발합니다. 이 글로 먼저 들어오신분은 코드를 작성하고 싶다면
선행 학습 이후에 따라와주세요.
추가되는 메서드는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
String Session;
public String getSession() {
   return Session;
}
public void setSession(String Session) {
   
   ActionContext con = ActionContext.getContext();
   Map session = con.getSession();
   
   session.put("SessionTXT", Session);
   this.Session = (String)session.get("SessionTXT");
}    
cs

7,8번 : 세션 사용하기위해 선언합니다. 필요할때마다 호출해서 선언합니다.
10번 : 세션에 받아온 strong 데이터를 담습니다.
11번 : 세션에 있는 데이터를 string으로 형변환 하여 String Session으로 돌려 줍니다.



 3. 결과 화면 


이해만 하면 너무 간단하고 사용하기 쉬운 세션 방법입니다.

실무에서도 자주 사용하는 부분이니 꼭 학습하세요.


마무리


세션은 웹 프로젝트에 기본입니다.

댓글을 달아 주세요


가상디렉토리와 응용프로그램의 차이는?


안녕하세요.
고코더 입니다.


IIS에서 많이 사용하는 
가상 디렉토리 기능이 있습니다.
웹사이트 아래에 있는 폴더가 아니더라도
해당 폴더를 웹사이트 안에 존속 시킬 수 있는
좋은 방법 입니다.




그런데 그위에 "응용프로램 추가" 버튼이 있습니다.
이것도 실행하면 
가상 디렉토리와 똑같이 별칭을 쓰고 
설정 하는 방법이 같습니다.

이 둘의 차이점을 묻는 후배 개발자의 질문이 있어서
블로그를 남깁니다.




가장 큰 차이점은!


▼ 서버 아래의 
a는 가상디렉토리로
b는 응용프로그램
으로 폴더를 만들었습니다.


▼ 그리고 인덱스에서 
세션을 만들어 담아보겠습니다. 



▼ 그리고 각각 가상디렉토리와 응용프로그램 추가에 
아래처럼 세션안에 내용을 출력 하는 소스를 매칭하였습니다. 
결과는


▼ 결과 값은 아래처럼
가상디렉토리는 세션을 공유하고 있고
응용프로그램은 해당 세션의 내용이 없습니다.



결론은


가상디렉토리는 웹사이트 폴더중에 하나이고
응용프로그램 추가는 세션을 존속받지 않는 하나의 새로운 사이트로 인식합니다.

만약 같은 헤더 값이 들어 있거나 함수가 있는
디렉토리면 가상디렉토리로 쓰겠고

사이트안에서 블로그 형식처럼 웹사이트를 나눠주는거라면
응용프로그램을 쓰면 되겠네요.




관련 컨텐츠




마무리


한번에 이해가 쏙 되죠?






댓글을 달아 주세요



Chrome Cookie Edit


어제 강의로 쿠키를 수정하는 방법도 강의 해야 겠다는 생각이 들어
이틀 연속 쿠키 강의를 진행합니다.

쿠키는 어제 말씀 드렸다시피 공개 정보이고 변조가 가능합니다. 
그 중에 오늘은 크롬에서 확장프로그램을 통해

쿠키를 수정하는 방법을 알아보겠습니다.



▼우선 크롬을 여시고 아래 URL을 접속하세요
그리고 chrome에 추가를 하면 설치가 됩니다.



▼이제 크롬에서 보시면 쿠키 모양의 산타 모자를 쓴 아이콘이 보입니다.
귀엽네요. 항상 느끼는건 좋은 프로그램은 유머와 센스가 있는게 특징입니다.




http://gocoder.tistory.com/ 제 블로그에서 해당 버튼을 눌러본 결과 입니다.
제가 구운 gocoder_info가 있네요 해당 값을 클릭 해 데이터를 수정하고 
완료 버튼인 v 체크 버튼을 누르면 적용 됩니다. 해당 값을 1로 바꾸면 제 블로그의 애니메이션인
화살표가 보이겠네요



▼ 휴지 모양을 누르면 해당 웹사이트의 쿠키가 모두 삭제 됩니다. 



▼ 삭제 후 모습은 정직하네요 쿠키가 없습니다.







마무리


쿠키 이론은 
-> http://gocoder.tistory.com/104 
을 참고해주세요




댓글을 달아 주세요



cookie란?


웹개발에서 쿠키는 정말 꼭! 필요한 존재입니다.
쓸수 있는 방법이 너무 많아 설명을 다 할 수 없을 정도이죠

HTTP 쿠키 : 웹사이트를 방문한 사용자 컴퓨터의 기록 정보 파일을 말하는 것 

쿠키 사용의 예로 
제 블로그에서 사용한 사례를 설명해보려고 합니다.



모바일로 들어왔을때 아래와 같은 애니메이션이 보이도록 스킨을 수정했습니다.


최초 진입시 "gocoder_info" 라는 쿠키를 사용자의 PC에 구웠습니다.



첫번째 들어왔을떄는 메뉴까지 보이는 액션을
두번,세번은 화살표만 보이는 액션을 보이게 했고 

▼ gocoder_info 라는 쿠키 값이 3이 들어가 있으면 하루 동안 애니메이션이 보이지 않습니다.



이것들 모두 쿠키가 있어 가능합니다. 
(쿠키가 없으면 이 작은 것도 DB로 해야 했겠네요)

이 밖에도 자동 로그인이나 카테고리 유지나 해당 사용자에게만
특별하게 제공하고 싶은 기능들은 거의 대부분 쿠키를 사용합니다.

하지만 쿠키는 공개 값이기 때문에 보안의 취약합니다.



그래서 중요한 정보는 서버의 저장할수 있는 "session"을 사용하게 됩니다.
이러면 또 서버의 과부하가 일어날 수 있으니 잘 조절하여 쓸수 있습니다




마무리



쿠키와 세션의 차이를 곰곰히 생각해보세요. 신입 면접때 자주 묻는 질문입니다.

메리크리스마스~!




댓글을 달아 주세요