1. 쿠키(Cookie) 


1) 쿠키(Cookie)란?


인터넷 사용자가 웹사이트를 방문할 경우 웹사이트의 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 말한다. 인터넷 사용자가 같은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀐다. 많은 서버 및 웹사이트들이 브라우저의 신속성을 위해 즐겨 쓰고 있다.


2) 쿠키 사용 예제


① 쿠키 사용법


**쿠키 만들기

Cookie c= new Cookie("productName1",URLEncoder.encode("냉장고","UTF-8"));//encoder로 한글 인코딩

c.setMaxAge(10);//쿠기 시간 설정


//쿠키보내기

response.addCookie(c);


**쿠키 받아서 뿌려주기

Cookie[] ck=request.getCookies();//쿠키를 배열로 받아온다.


<%

if(ck!=null){

//쿠키를 받아온 배열을 돌려준다.

for(int i=ck.length-1;i>=0;i--){

if(ck[i].getName().indexOf("productName")!=-1){

%>

<%=URLDecoder.decode(ck[i].getValue(),"UTF-8")%><br>

<img src="./image/<%=URLDecoder.decode(ck[i].getValue(),"UTF-8")%>.jpg" width="100" height="100"/><br>

<% 

}

}

}

%>


② 예제(최근 내가 본 목록 만들기)


-흐름도

-shop.jsp

: shop.jsp는 실행할 때마다 쿠키를 받아와준다.

받아온 다음, 현재 살아있는 쿠키들을 배열에서 꺼내 보여준다.


-p1.jsp

: p1,p2,p3 총 3개의 jsp 파일이 있는데, 각각의 쿠키이름은 productName1, productName2, productName3로 지정해준다.

setMaxAge()는 쿠키가 살아있는 시간을 지정해주는 메소드고, response.addCookie()로 쿠키를 보내준다.

밑에 '돌아가기' 링크를 누르면 shop.jsp로 쿠키가 전달된다.


-실행화면

:링크를 누르면 쿠키가 10초동안 살아있게되고 shop.jsp에서 그 목록들을 볼 수 있게된다.

그리고 10초가 지나면 자동으로 삭제된다.




2. 팝업(Popup) 


1) '오늘 하루동안 보지않기' 예제 


-main.jsp


-popup.jsp

: setMaxAge(60)(현재는 60초)으로 쿠키가 살아 있는 시간을 지정해준다.


-실행화면





3. 파일 업로드(cos.jar 이용)


-파일업로드를 위해 http://www.servlets.com/cos/ 들어가서 파일을 다운로드해준다.

여기서 다운 받은 cos~.zip파일을 이클립스 lib폴더에 넣어줘야한다.

zip파일 안에 cos.jar를 lib에 추가시켜준다.


이렇게 셋팅해주면 파일업로드를 간편하게 사용 가능해지게 된다.

이제 코드로 가면,


-test1.jsp (파일 업로드해주는 부분)

: enctype을 "multipart/form-data"로 보내줘야한다.


-test3.jsp (파일을 받아서 서버에 전송하는 부분)

: Path를 root/pds/saveData 라는 폴더로 만들어주었다.(여기에 파일들을 저장)

(여기서 Path의 File.seperator는 "\\"(역슬래시 2개)로 대체 가능하다.)

root는 defalut위치인데 D:\java\work\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\study 이 경로이다.

만약 사용자들이 같은 파일명의 파일을 올린다면, 파일명이 중복되서 저장 될 수는 없기때문에,

서버 폴더에는 파일명 뒤에 숫자가 붙어 저장되게 된다.

따라서 서버에 저장된 파일명과 업로드한 파일명의 관계를 매핑해서 가져오게된다.

SaveFileName서버에 저장된 파일명.

OriginalFileName은 업로드 할때 사용자가 입력한 파일명.


위에서 보듯 파일 전송부분은 아까 lib폴더에 넣어준 cos.jar로 인해 간단하다. 한 줄이면 끝난다.

//파일전송

MultipartRequest mr=new MultipartRequest(request,path,maxFileSize,encType, new DefaultFileRenamePolicy());



-서버폴더




-위 코드들 압축파일



+ Recent posts