본문 바로가기

programming/Gukbi

국비 교육 61일차 - bean, cookie

728x90
반응형

jsp 내장 객체를 계속 배우는 중이다. 오늘 배운건 bean과 cookie

 

DB에서 데이터를 가져오면 JavaBean이라는 클래스에 담아서 JSP를 통해 웹브라우저에 띄울 수 있다. 

 

 이런 과정을 통해서 오라클에서 값을 가져와 준다.

 

package com.sist.bean;
/*
 * 		네트워크 통신
 * 		브라우저(클라이언트) <=======> 톰캣(서버)
 * 			  결과값 => 데이터가 많은 경우에 클래스로 묶어서 한번에 전송
 * 			  JSP : Bean
 * 				= 변수(private),읽기/쓰기 => getter/setter
 * 			  MyBatis : DTO
 * 			  Spring : VO
 * 			  ============ 캡슐화 (데이터 보호:시큐어코딩)
 * 			  
 */
public class MemberBean {
	private String id;
	private String name;
	private String addr;
	private String tel;
	private String sex;
	private boolean admin;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public boolean isAdmin() {
		return admin;
	}
	public void setAdmin(boolean admin) {
		this.admin = admin;
	}
}

 응용을 위해서 memberbean이라는 클래스에 변수들을 생성하고 getter, setter를 생성해줬다. 

 

입력값을 받아서 저장해준 다음에 bean을 통해서 output창에 띄워주는 코드를 짜봤다. 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<style type="text/css">
.row{
	width:450px;
	margin: 0px auto;
}
</style>
</head>
<body>
	<div class="container">
	 <h1 class="text-center">회원정보</h1>
	  <div class="row">
	  <form method=post action="output.jsp">
	 	<table class="table">
	 	 <tr>
	 	  <td width=20% class="text-right">ID</td>
	 	  <td width=80%>
	 	   <input type=text name=id size=15 class="input-sm">
	 	  </td>
	 	 </tr>
	 	 <tr>
	 	  <td width=20% class="text-right">이름</td>
	 	  <td width=80%>
	 	   <input type=text name=name size=15 class="input-sm">
	 	  </td>
	 	 </tr>
	 	 <tr>
	 	  <td width=20% class="text-right">성별</td>
	 	  <td width=80%>
	 	   <input type=radio name=sex value="여자" checked="checked">여자
	 	   <input type=radio name=sex value="남자">남자
	 	  </td>
	 	 </tr>
	 	 <tr>
	 	  <td width=20% class="text-right">주소</td>
	 	  <td width=80%>
	 	   <input type=text name=addr size=30 class="input-sm">
	 	  </td>
	 	 </tr>
	 	 <tr>
	 	  <td width=20% class="text-right">전화</td>
	 	  <td width=80%>
	 	   <input type=text name=tel size=20 class="input-sm">
	 	  </td>
	 	 </tr>
	 	 
	 	 <tr>
	 	  <td colspan="2" class="text-center">
	 	   <button class="btn btn-sm btn-primary">회원가입</button>
	 	  </td>
	 	 </tr>
	 	</table>
	 	</form>
	  </div>
	</div>
</body>
</html>

 이렇게 post 방식으로 입력받은 값을 output으로 전송을 해준다.

 

output에서는 값을 이렇게 받아주고 있다. 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="com.sist.bean.*"%>
<%--
	public void jspService(HttpServletRequest request,HttpServletResponse response)
	{
	
 --%>
<%
	try
	{
			request.setCharacterEncoding("UTF-8");
	}catch(Exception ex){}
	String name=request.getParameter("name");
	String id=request.getParameter("id");
	String sex=request.getParameter("sex");
	String addr=request.getParameter("addr");
	String tel=request.getParameter("tel");
	
	MemberBean bean=new MemberBean();
	bean.setName(name);
	bean.setSex(sex);
	bean.setId(id);
	bean.setAddr(addr);
	bean.setTel(tel);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	아이디:<%=bean.getName() %><br>
	이름:<%=bean.getName() %><br>
	성별:<%=bean.getSex() %><br>
	주소:<%=bean.getAddr() %><br>
	전화:<%=bean.getTel()%>
</body>
</html>

 request.getParameter를 통해서 변수에 값을 모두 저장해주고, bean 클래스에 해당하는 값을 전부 채워주고 아래에서 출력을 해주는 방식이다. 

 

이렇게 하지 않는 방법도 있다. jsp에서 제공하는 bean 액션태그들을 이용하면 직접 값을 클래스에 저장해주고 불러온것과 같이 똑같은 결과값을 얻을 수 있다. 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="com.sist.bean.*"%>
<%--
     public void display(MemberBean bean)
     {
        dao.insert(bean)
     }
     
     jsp에서 지원하는 액션태그  <jsp:
     1. 클래스 메모리 할당 => 싱글턴  <jsp:useBean id="객체명" class="패키지명.클래스명">
        Class.forName("패키지명.클래스명") => 클래스를 등록 메모리할당 요청 => 패키지명.클래스명
     2. 클라이언트가 전송한 데이터를 받아서 setXxx()에 저장하는 태그 
        <jsp:setProperty name="객체명" property="변수명"/> 전체는 *
     3. 빈에 저장된 데이터를 읽어서 출력 : <jsp:getProperty name="객체명" property="변수명">
     4. request를 공유하면서 JSP여러개를 조립 : <jsp:include page="파일명">
     5. request를 공유하면 화면을 이동 : <jsp:forward page="">
     
     Bean을 만들 경우 : 데이터를 모아서 한번에 전송할 목적 
     =============
      변수:private => 읽기(getter)/쓰기(setter)
      메소드 : public 
        boolean => isXxx()
      
 --%>
<%
    request.setCharacterEncoding("UTF-8");
%>
<%--
     MemberBean bean=new MemberBean();
 --%>
<jsp:useBean id="bean" class="com.sist.bean.MemberBean">
  <jsp:setProperty name="bean" property="*"/>
</jsp:useBean>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  아이디:<jsp:getProperty name="bean" property="id"/><br>
  <%-- bean.getId() --%>
  이름:<jsp:getProperty name="bean" property="name"/><br>
  성별:<jsp:getProperty name="bean" property="sex"/><br>
  주소:<jsp:getProperty name="bean" property="addr"/><br>
  전화:<jsp:getProperty name="bean" property="tel"/>
  
</body>
</html>

 

<jsp:useBean id="bean" class="com.sist.bean.MemberBean">
  <jsp:setProperty name="bean" property="*"/>
</jsp:useBean>

useBean은 클래스 메모리를 할당 요청을 해주는 액션태그이다. id에는 객체명을, class 뒤에는 패키지명.클래스명을 써서 할당해준다. 

 

그 안에서 클라이언트가 전송한 데이터를 받아서 객체에 변수들을 저장해준다. 전체를 저장하고 싶으면 (*)로 써주면 된다. 

 

 아이디:<jsp:getProperty name="bean" property="id"/><br>
  <%-- bean.getId() --%>
  이름:<jsp:getProperty name="bean" property="name"/><br>
  성별:<jsp:getProperty name="bean" property="sex"/><br>
  주소:<jsp:getProperty name="bean" property="addr"/><br>
  전화:<jsp:getProperty name="bean" property="tel"/>

getProperty는 bean에 저장된 데이터를 읽어서 출력해주는 액션태그이다. name에는 객체명을, property에는 get으로 받아올 변수명을 써주면 된다. 

(여기서는 name뒤에 써준 값들을 가져와주면 된다) 

 

 

값을 받은 output1.jsp에 이렇게 값이 뜬다

 

 

이렇게 간단하게 javaBean에 대해서 배웠고, 오후에는 쿠기에 대해서 배우기 시작했다. 쿠키 예시를 배우기 위해서 영화 정보를 출력해주는 간단한 홈페이지를 가지고 실습해봤다. 

 

일단 오늘 배운 JavaBean을 가지고도 실습을 해야했기 때문에 아래와 같이 만들어줬다

package com.sist.dao;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class MovieBean {
	private int mno, cno, replyCount;
	private String poster, title, director, actor, regdate, genre, nation, grade, time, showUser, boxoffice,
	story, key;
	private double score;
}

 

dao역시 Bean 클래스를 사용해서 만들어 준다.

package com.sist.dao;
import java.util.*;
import javax.sql.*;
import java.sql.*;
import javax.naming.*;
// 결합성이 낮은 프로그램 => 다른 클래스에 영향이 없는 프로그램
public class MovieDAO {
	private Connection conn;
	private PreparedStatement ps;
	
	// 미리 생성된 Connection객체를 얻어온다
	public void getConnection()
	{
		try {
			
			// 1. 탐색기를 연다 (JNDI=rmi)
			Context init=new InitialContext();
			// 2. c드라이버를 클릭 java://comp/env
			Context c=(Context)init.lookup("java://comp/env");
			// 3. 폴더를 찾는다   jdbc/oracle
			DataSource ds=(DataSource)c.lookup("jdbc/oracle");
			// 4. 원하는 파일을 가지고 온다 => 미리 생성된 Connection의 주소얻기
			conn=ds.getConnection();
		} catch (Exception e) {}
	}
	// Connection사용후에 반환 => 재사용
	public void disConnection()
	{
		try
		{
			if(ps!=null) ps.close();
			if(conn!=null) conn.close();
		}catch(Exception ex) {}
	}
	
	// 기능처리
	public List<MovieBean> movieListData(int cno)
	{
		List<MovieBean> list=new ArrayList<MovieBean>();
		try
		{
			getConnection(); // 미리 생성된 conn의 주소를 얻어온다 => 연결에 소비되는 시간을 단축할 수 있다
			// 단점 : 웹에서 작동한다
			String sql="SELECT mno, poster, title "
					+"FROM daum_movie "
					+"WHERE cno=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, cno);
			
			ResultSet rs=ps.executeQuery();
			while(rs.next())
			{
				MovieBean bean=new MovieBean();
				bean.setMno(rs.getInt(1));
				bean.setPoster(rs.getString(2));
				bean.setTitle(rs.getString(3));
				
				list.add(bean);
			}
			rs.close();
			
		} 
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
		finally
		{
			disConnection(); // 반환 => pool(conn을 관리하는 영역) => 재사용
		}
		return list;
	}
	
	public MovieBean movieDetailData(int mno)
	{
		
		
		MovieBean bean=new MovieBean();
		try
		{
			// 미리 생성된 Connection의 메모리 주소 열기
			getConnection();
			// SQL 문장 전송
			String sql="SELECT mno,poster,title,regdate,genre,nation,grade,time,"
					+"showuser,boxoffice,story,key,score "
					+ "FROM daum_movie "
					+"WHERE mno=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, mno);
			
			ResultSet rs=ps.executeQuery();
			rs.next();
			bean.setMno(rs.getInt(1));
			bean.setPoster(rs.getString(2));
			bean.setTitle(rs.getString(3));
			bean.setRegdate(rs.getString(4));
			bean.setGenre(rs.getString(5));
			bean.setNation(rs.getString(6));
			bean.setGrade(rs.getString(7));
			bean.setTime(rs.getString(8));
			bean.setShowUser(rs.getString(9));
			bean.setBoxoffice(rs.getString(10));
			bean.setStory(rs.getString(11));
			bean.setKey(rs.getString(12));
			bean.setScore(rs.getDouble(13));
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		finally
		{
			// 오라클 수행이 끝나면 반환해라
		}
		return bean;
	}
}

 

 이젠에 만들어 줬던것과 크게 다른건 없다. 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*,com.sist.dao.*"%>
<jsp:useBean id="dao" class="com.sist.dao.MovieDAO"></jsp:useBean>
<%
    String cno=request.getParameter("cno");
    if(cno==null)
    	cno="1";
    int index=Integer.parseInt(cno);
    List<MovieBean> list=dao.movieListData(index);
    
    // 쿠키 읽기
    List<MovieBean> cList=new ArrayList<MovieBean>();
    Cookie[] cookies=request.getCookies();
    if(cookies!=null && cookies.length>0)
    {
    	for(int i=0;i<cookies.length;i++)
    	{
    		if(cookies[i].getName().startsWith("m"))
    		{
    			String value=cookies[i].getValue();
    			MovieBean bean=dao.movieDetailData(Integer.parseInt(value));
    			cList.add(bean);
    		}
    	}
    }
    
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<style type="text/css">
.row{
	width:960px;
	margin: 0px auto;
}
</style>
</head>
<body>
	<div class="container">
	 <div class="row">
	  <%
	  	for(MovieBean bean:list)
	  	{
	  %>
	  		<div class="col-md-3">
		    <div class="thumbnail">
		      <a href="detail_before.jsp?mno=<%=bean.getMno() %>">
		        <img src="<%=bean.getPoster() %>" alt="Lights" style="width:100%">
		        <div class="caption">
		          <p style="font-size:8pt"><%=bean.getTitle() %></p>
		        </div>
		      </a>
		    </div>
		  </div>
	  <% 
	  	}
	  %>
	 </div>
	 <div class="row">
	 	<h3>최근 방문 영화</h3>
	 	<a href="delete.jsp" class="btn btn-sm btn-success">삭제</a>
	 	<hr>
	 	<%-- 쿠키에 저장된 영화를 보여준다 --%>
	 	<%
	 		for(int i=cList.size()-1; i>0; i--)
	 		{
	 			MovieBean b=cList.get(i);
	 	%>		
	 		<img src="<%=b.getPoster() %>" width=100 height=150>
	 	<% 		
	 		}
	 	%>
	 </div>
	</div>
</body>
</html>

 메인페이지라고 할 수 있는 list 페이지를 먼저 만들어 준다. 맨위에를 보면 useBean 액션태그를 사용해서 dao 클래스를 가져와 메모리를 할당한 것을 볼 수 있다. 

 

 

그러고 dao에서 생성해준 메소드들을 사용해주기 위해 html 위에 자바코딩을 해준다. 

 

<%
    String cno=request.getParameter("cno");
    if(cno==null)
    	cno="1";
    int index=Integer.parseInt(cno);
    List<MovieBean> list=dao.movieListData(index);
    
    // 쿠키 읽기
    List<MovieBean> cList=new ArrayList<MovieBean>();
    Cookie[] cookies=request.getCookies();
    if(cookies!=null && cookies.length>0)
    {
    	for(int i=0;i<cookies.length;i++)
    	{
    		if(cookies[i].getName().startsWith("m"))
    		{
    			String value=cookies[i].getValue();
    			MovieBean bean=dao.movieDetailData(Integer.parseInt(value));
    			cList.add(bean);
    		}
    	}
    }
%>

  dao에서 만든 메소드에서 cno가 있어야 해당하는 데이터를 가져올 수 있었기 때문에 getParameter를 통해서 cno를 받아왔다. 근데 처음 켰을때는 클라이언트로 전송받은 cno가 당연히 없기 때문에 null이면 1로 설정을 해준다. 

 

그 후에 이걸 index라는 변수에 담아서 movieListData를 실행할 수 있도록 메소드에 매개변수로 넣어준다. 

 

<div class="row">
	  <%
	  	for(MovieBean bean:list)
	  	{
	  %>
	  		<div class="col-md-3">
		    <div class="thumbnail">
		      <a href="detail_before.jsp?mno=<%=bean.getMno() %>">
		        <img src="<%=bean.getPoster() %>" alt="Lights" style="width:100%">
		        <div class="caption">
		          <p style="font-size:8pt"><%=bean.getTitle() %></p>
		        </div>
		      </a>
		    </div>
		  </div>
	  <% 
	  	}
	  %>
	 </div>

여기는 받아온 리스트 데이터들을 for문을 사용해서 전부 출력해주고 있다. 사진을 누르면 상세정보 페이지까지 보여줘야 하기 때문에 a태그로 감싼 후에 mno의 값을 detail_before.jsp에 같이 넘겨줬다. 

 

html을 띄우기 전에 쿠키를 해결해야하기 때문이다. 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String mno=request.getParameter("mno");
	
	// 쿠키전송
	/*
		1. 쿠키 생성
		2. 쿠키 저장
		3. 쿠키를 클라이언트로 전송
	*/
	// 1. 쿠키 생성 : 내장객체가 아니다
	Cookie cookie=new Cookie("m"+mno,mno); // 값은 문자열만 저장할 수 있음 
	// 저장하는 기간
	cookie.setMaxAge(24*60*60);
	response.addCookie(cookie);
	response.sendRedirect("detail.jsp?mno="+mno);
%>

 

쿠키는 사실 따지고 보면 내장객체가 아니다. 일단 쿠키를 생성을 해준다. 쿠키는 map방식을 사용하고 있기 때문에 key,value를 같이 지정해줘야 한다. 여기서는 m+(mno)를 키값으로 지정해 줬고, value는 mno를 그대로 사용했다. 

 

아래는 쿠키를 저장하는 기간과 reponse를 통해 쿠키를 다시 detail쪽으로 전송해줬다. 

 

쿠키 처리 과정

response는 jsp파일 하나당 한번만 가능하기 때문에 꼭 detail.jsp로 이동하기 전에 먼저 저장을 해준 다음에 넘겨주고 있다. 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="com.sist.dao.*"%>
<jsp:useBean id="dao" class="com.sist.dao.MovieDAO"></jsp:useBean>
<%
	// list.jsp(영화번호 전송) => 영화번호를 받아서 해당 영화의 모든 데이터 요청
	String mno=request.getParameter("mno");
	// DAO연결 => 메모리 할당
	MovieBean bean=dao.movieDetailData(Integer.parseInt(mno));
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<style type="text/css">
.row{
	width:960px;
	margin: 0px auto;
}
</style>
</head>
<body>
 <div class="container">
  
   <h3 class="text-center">&lt;<%=bean.getTitle() %>&gt; 상세보기</h3>
   <div class="row">
    <table class="table">
    <%--
    	동영상 : <embed>, <object>, <iframe>, <video>
    	
     --%>
     <tr>
      <td>
       <embed src="http://youtube.com/embed/<%=bean.getKey()%>" width=960px; height=350px; %>
      </td>
     </tr>
    </table>
  </div>
  <div class="row">
   <table class="table">
    <tr>
     <td width=30% class="text-center" rowspan="9">
      <img src="<%=bean.getPoster()%>"  width=100%>
     </td>
     <td colspan="2"><%=bean.getTitle()%></td>
    </tr>
    <tr>
     <th class="text-right" width=15%>개봉</th>
     <td width=55%><%=bean.getRegdate() %></td>
    </tr>
    <tr>
     <th class="text-right" width=15%>장르</th>
     <td width=55%><%=bean.getGenre()%></td>
    </tr>
    <tr>
     <th class="text-right" width=15%>국가</th>
     <td width=55%><%=bean.getNation()%></td>
    </tr>
    <tr>
     <th class="text-right" width=15%>등급</th>
     <td width=55%><%=bean.getGrade()%></td>
    </tr>
    <tr>
     <th class="text-right" width=15%>러닝타임</th>
     <td width=55%><%=bean.getTime() %></td>
    </tr>
    <tr>
     <th class="text-right" width=15%>박스오피스</th>
     <td width=55%><%=bean.getBoxoffice() %></td>
    </tr>
    <tr>
     <th class="text-right" width=15%>누적관객수</th>
     <td width=55%><%=bean.getShowUser() %></td>
    </tr>
    <tr>
     <th class="text-right" width=15%>평점</th>
     <td width=55%><%=bean.getScore() %></td>
    </tr>
    <tr>
     <td colspan="3">
      <%=bean.getStory() %>
     </td>
    </tr>
    <tr>
     <td colspan="3">
      <a href="list.jsp" class="btn btn-sm primary">목록</a>
     </td>
    </tr>
   </table>
  </div>
 </div>
</body>
</html>

 그리고 상세보기로 넘어오면 위와 같이 정보를 출력해준다. 

 

출력을 해주고 아래 목록 버튼을 누르면 list.jsp 파일로 다시 이동한다. 이미 detail_before.jsp에서 쿠키의 내용을 저장해줬기 때문에 여기서는 처리할 필요가 없다. 

 

그러면 list.jsp에서 쿠키를 읽고, 아래 그 내용을 출력해주기만 하면 된다. 

 

// 쿠키 읽기
    List<MovieBean> cList=new ArrayList<MovieBean>();
    Cookie[] cookies=request.getCookies();
    if(cookies!=null && cookies.length>0)
    {
    	for(int i=0;i<cookies.length;i++)
    	{
    		if(cookies[i].getName().startsWith("m"))
    		{
    			String value=cookies[i].getValue();
    			MovieBean bean=dao.movieDetailData(Integer.parseInt(value));
    			cList.add(bean);
    		}
    	}
    }

 일단 쿠키에 저장된 값을 담아줄 List를 하나 만들고 쿠키 배열에 데이터들을 저장한다. 쿠키가 아예 저장이 안되어 있을 수도 있으니 먼저 if 조건문을 통해 쿠키가 존재하고, 길이가 0이 아닐때 처리하도록 해준다.

 

여기서는 상세본 영화 목록에 저장된 쿠키만을 가져와야 하기 때문에, 미리 m+(mno)한 쿠키 값을 가져와 준다 

쿠키의 key값이 m으로 시작하면, 

 

value변수에 쿠키의 value값 (mno)를 저장해준다. 그러고 나서 그 value값을 movieDetailData()의 매개변수로 넣어줘서 오라클에서 해당하는 값을 가져오도록 한다. 

 

 

받아온 bean값을 cList에 저장해주면 쿠키를 받아올 처리를 모두 끝냈다. 

 <h3>최근 방문 영화</h3>
      <a href="delete.jsp" class="btn btn-sm btn-success">삭제</a>
      <hr>
      <%-- 쿠키에 저장된 영화를 보여준다  --%>
      <%
         for(int i=cList.size()-1;i>=0;i--)
         {
        	 MovieBean b=cList.get(i);
      %>
           <img src="<%=b.getPoster() %>" width=100 height=150>
      <%
      
         }
      %>

 가장 최근에 본 영화부터 출력해줘야 하기 때문에 위와 같이 for문의 조건문을 감소하게 해줬다. 

그리고 해당하는 포스터들을 전부 출력해주면 된다. 

 

 

그리고!!

쿠키를 삭제하고 싶다면

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	Cookie[] cookies=request.getCookies();
	if(cookies!=null && cookies.length>0)
	{
		for(int i=0; i<cookies.length; i++)
		{
			if(cookies[i].getName().startsWith("m"))
			{
				cookies[i].setMaxAge(0); // 삭제
				response.addCookie(cookies[i]);
			}
		}
	}
	response.sendRedirect("list.jsp");
%>

   delete.jsp에서 쿠키의 저장시간을 0으로 셋팅해줘서 지워버리면 된당

728x90
반응형