ajax를 통한 session 객체 재 정의

530 views
Skip to first unread message

GIL

unread,
Dec 19, 2011, 7:51:24 AM12/19/11
to Korea Spring User Group
안녕하세요


먼저 간략하게 질문을 정리해 보자면 Ajax를 통해 서버단에서 재 정의한 session 객체를 view 페이지에서
다시 읽어도 변경된 session 정보를 반영할 수 없다는 것입니다.

자세히 설명 드리자면, 우선 저는 spring3+hibernate로 소규모 웹 애플리케이션을 만들고 있습니다.
질문드릴 기능은 jfreechart로 구현한 그래프 정보를 객체 (ImageHotSpot: String imageName,
String imageURL, String imageMap, JFreechart chart, ChartRenderingInfo
map, String filePath)로 만들어 리스트로 보여 줍니다.
View 페이지에서 user가 그래프 크기를 바꿀 수 있는데
150%로 확대해 보기를 클릭하면 Ajax를 이용해 서버에서 session에 저장된 ImageHotSpot 객체 리스트를 불러

각가의 그래프를 확대해 imagefile로 저장합니다.
fileName = ServletUtilities.saveChartAsPNG(Chart, (int)graphSize,
info, session) 이렇게 새로 chart 이미지를
만들어 session.setAttribute("graphImageList", resultGraphImageList); 바뀐 그래
프 정보 객테를 저장합니다.
이렇게 xmlHttp.status == 200 일 때 새로이 graphImageList를 불러도 이전 그대로의 image만 보
여 집니다.
document.location.reload() 후에 <c:forEach 로 추출해도 새로 바뀐 session 객체의 이미지들
은 반영 안됩니다.

해결 방법이 있을 까요??

이상용

unread,
Dec 20, 2011, 11:57:27 PM12/20/11
to ks...@googlegroups.com
안녕하세요.
 
제가 생각하기에는 세션이 먼저 정상적으로 변경되는지..
확인을 먼저 해보시는게 맞을 것 같습니다.
바뀌지 않을 이유가 없으니까요^^;;
 
간혹, 세션 문제가 아니라.. 저장된 이미지 파일이 정상적으로 로딩이 되지 않아서 발생할 수도 있습니다.
혹시 사용하시는 서버가 Tomcat 만 운영되는 환경인가요?
그럴 경우, 새로 생성된 이미지 파일이 바로 반영되지 않습니다.(약간의 시간이 필요합니다. ㅜㅜ)
 
저도 jfreechart 로 구현했을 때 비슷한 경험을 한지라 ㅡㅡㅋ;;
 
그럼 도움이 되었으면 좋겠습니다.
 


 
2011년 12월 19일 오후 9:51, GIL <jb9...@gmail.com>님의 말:

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.


Yong-Un Heo

unread,
Dec 21, 2011, 3:21:33 AM12/21/11
to ks...@googlegroups.com
상용님 의견과 같습니다.
혹시 동일한 이미지에 대한 요청의 경우 브라우저 에서 캐쉬를 하기 때문에 변경되어 보이지 않을수도 있습니다.
관련 부분을 피들러같은 웹구간 프록시툴을 이용해서 확인해보시기 바랍니다.


2011년 12월 21일 오후 1:57, 이상용 <kr.goo...@gmail.com>님의 말:

이상용

unread,
Dec 21, 2011, 3:24:37 AM12/21/11
to ks...@googlegroups.com
조금 덧붙이자면.. 앞단에 Apache를 설치하셔서
이미지 리소스들은 Apache단으로 빼는것도 좋은 방법입니다.(별다른 소스의 수정없이 생성되는 이미지의 경로만 Apache Context 밑으로 설정해주면..)
간단하게 해결될수도^^;;;

2011년 12월 21일 오후 5:21, Yong-Un Heo <dyd...@gmail.com>님의 말:

박창준

unread,
Dec 25, 2011, 11:16:49 AM12/25/11
to ks...@googlegroups.com
다른분과 의견음 동일합니다
거의 캐쉬되었울겁니다
동일 조건으로 요청하면 캐시된 이미지를 가져왔던걸로 기억된니더
그래서 시분초데이터를 요트청데이터에 퐈함시켜서 캐시정보가 아닌
변경된 요청을 처리하도록 했던걸로 기억합니다

나의 iPhone에서 보냄

2011. 12. 19. 오후 9:51 GIL <jb9...@gmail.com> 작성:
Reply all
Reply to author
Forward
0 new messages