http://www.okjsp.net/seq/264107
안녕하세요.
질문이 맞는지도 잘 모르겠네요.
쿠키에 데이터 저장하는 것을 해보려고 하는데요.
저장할 데이터의 형식(?)이 arraylist로 되어 있습니다.
이 경우에는 어떻게 해야 하나요?;
Cookie cookie[] = new Cookie[1];
String cookie_articleList = null;
cookie_articleList = articleList; <- articleList에 빨간줄
cookie[0] = new Cookie("cookie_user_id", cookie_articleList);
어떻게 해야 하나요;
Cookie cookie[] = new Cookie[1];
ArrayList<plant> cookie_articleList = null;
cookie_articleList = articleList;
cookie[0] = new Cookie("cookie_user_id", cookie_articleList);
이렇게 해도 new Cookie("cookie_user_id", cookie_articleList);여기에 빨간줄이 생깁니다..
답변1.
직렬화된 개체, 즉 implements Serializable 가 붙어있는 class 만 저장 가능합니다.
그런데, cookie 는 사용자의 브라우저에 저장되는 보안상 매우 취약하고 브라우저 설정에 따라서는 사용이 불가능하기도 한 존재입니다. 왠만하면 걷어내는 추세인 것으로 아는데...왜 그렇게 쓰시려고?
하이드리드 앱이라고 하나요; 겉은 앱인데 안에 내용은 웹인 앱이요.
그걸 수정 중에 있습니다.
어떠한 검색을 서버에서 실행해서 결과를 화면에 보여주게 되는데요.
이 때에 검색한 대상에 대한 상세 보기가 가능합니다.
상세보기 후에 뒤로 왔을 때 검색 했을 때의 결과를 다시 보여줬으면 좋겠습니다.
그런데 지금은 검색결과가 사라지고 전체보기 화면이 나옵니다.
(전체보기는 검색전, 검색 후에는 검색 결과가 있겠지요. )
검색하는 시간도 오래 걸려서 매번 다시 검색하기에는 무리가 좀 있습니다.
무튼 사용자가 검색한 결과이고 보안과 상관없는 내용이라고 생각됩니다.
이전화면(검색결과)으로 갈때만 사용하게 되기 때문에요.
............................................................
찾다보니 쿠키에 저장하는 것을 알게 되어서 적용해봐야겠다 싶었는데.
이게 잘못된 방법이라면 어떻게 해야 하나요?
...............................................................
어떤 분께선 '해시체인지 이벤트?'를 사용해보라고 하셨는데요 . 뭐가 해서 찾아보니 html만 있는곳에서 사용할 수 있다고 하더라고요.. 음..
제 설명이 부족하다면 추가로 댓글 달겠습니다.
어떤 식으로 해야 하는지좀 알려주셨으면 좋겠습니다. 감사합니다.
서버에 많은 데이터들이 있고 그 데이터 중에 사용자가 원하는 것을 검색한 후에 화면에 보여주게 됩니다.
단순 정보 제공이라 암호화가 필요하지 않을 것 같습니다.
쿠키나 세션에 저장하는 방법이 아니라면 어떻게 해야 하나요?
답변2.
db에 저장했다가 보여주세요
답변3.
cookie는 String밖에 저장 할 수 없습니다. 서로 다른 시스템(클라<->서버)과 인터페이스 하기 때문입니다. 대충 이해 하기로는 쿠키에 값을 저장해 다니고 싶은 것 같은데요. 결국 리스트 값을 직렬화 해서 문자열을 쿠키값에 저장하고 사용하는 쪽에서는 역직렬화 해서 사용해야 되구요.
그리고 보안 이런 부분을 다 무시하더라도 서버 설정을 바꿀 수 없는 경우라면 헤더 사이즈는 고려 하셔야 합니다. 서버마다(아파치, 톰캣 등) 사이즈가 4k, 8k 이렇게 정해져 있어 사이즈 문제가 발생될 수 있습니다.
마지막으로 "서버에 많은 데이터들이 있고 그 데이터 중에 사용자가 원하는 것을 검색한 후에 화면에 보여주게 됩니다. " 매 페이지마다 서버에 값을 가져오는 문제로 쿠키를 고려 하셨다면 다른 방법을 고려 하는게 좋겠습니다. 프레임 구조에 데이터를 공유 하시던지 html5가능한 브라우저만 사용된다면 웹스토리지같은(http://www.w3schools.com/html/html5_webstorage.asp) 방법 등을 생각 해보세요.
답변4.
검색하는 항목값을 상세보기페이지로 같이넘겨주시고 뒤로가기버튼클릭시 검색항목값이 있으면 검색결과 리스트노출 / 검색항목값이없으면 기본 전체리스트 노출하는방식은요?
답변5.
저라면 상세보기창을 대화상자식으로 검색창 위에 뛰우고 ,
닫혀지면 이미 있던 검색창 보여지게 하겠네요.
<FORM name="myform">
<sql:query var="rs" dataSource="jdbc/mydb">
select * from detail_table
</sql:query>
<c:set var="rowdetail" value="${rs.rows[0]}"/>
<input type="hidden" id="id_something" value="${rowdetail.some}">
<div id="detail" class="detail_window" style="display:none; width:auto; padding:20px;">
이런식으로 히든폼에 상세내용 적으시면
'나의질문답' 카테고리의 다른 글
.java파일에서 .jsp로 변수전달 (0) | 2014.10.30 |
---|---|
java에서 jsp로 object형 arraylist넘기기 (0) | 2014.10.29 |
뒤로가기버튼 클릭시 이전 검색 정보 보여주기 (0) | 2014.10.28 |
레이아웃을 숨기고 싶어요 (0) | 2014.10.17 |
rectangle 질문있습니다. (0) | 2014.10.07 |