Servlet Ders09 - Cookieler


     Cookiler istemcinin izni ile istemci tarafında saklanan sunucunun istemciyi tanımasını sağlayan bilgilerdir. İstemci sunucuya ilk kez eriştiğinde sunucu istemciye gönderdiği cevaba ek olarak ilerde onu tanımasını sağlayacak cookie bilgisinide gönderir.Bundan sonra istemci sunucuya gönderdiği her isteğin yanında bu cookie bilgisinide göndererek sunucu tarafından tanınmış olur.Örneğin bir siteye giriş yaptıktan sonra bir dahaki girişinizde kullanıcı adı veya parolanızın otomatik olarak doldurulmuş veya hatırlanıyor olduğunu görebilirsiniz.Bunu sağlayan cookielerdir.

Ön Bilgi
// x isimli y değerli cookie nesnei oluşturma
Cookie co=new Cookie("x","y");

// cookienin saklanacağı süreyi saniye cinsinden belirleme
co.setMaxAge(60*60*24*7);

//responsea cookieyi ekleme
response.addCookie(co);

// tüm cookieleri alma
Cookie[] co=request.getCookies();

// tüm cookieleri aldıktan sonra, x isimli cookienin değerine ulaşma
for(Cookie ad:co){
   if(ad.getName().equals("x")){
   out.println("Merhaba :"+ad.getValue());
   }
  }


// x isimli cookieyi silme
//1.adım : degeri silinir.
Cookie co=new Cookie("x","");

//2.adım : saklanma süresi sıfırlanır.
co.setMaxAge(0);

//3.adım : responsea eklenir.
response.addCookie(ad);


index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
</head>
<body>


<form action="Servlet">
Ad<br/>
<input type="text" name="ad"/><br/><br/>
<input type="submit" value="gonder"/>
</form>

</body>
</html>

Servlet.java
package test;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  
  response.setContentType("text/html");
  PrintWriter out=response.getWriter();
  
  String ad=request.getParameter("ad");
  Cookie co=new Cookie("ad",ad);
  co.setMaxAge(60*60*24*7);
  response.addCookie(co);
  out.println("<br/> Cookie eklendi! <br/> <a href='Servlet2'><h2>Servlet2'ye git</h2><a>");
  
 }

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }

}

Servlet2.java
package test;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Servlet2")
public class Servlet2 extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  
  response.setContentType("text/html");
  PrintWriter out=response.getWriter();
  
  Cookie[] co=request.getCookies();
  for(Cookie ad:co){
   if(ad.getName().equals("ad")){
   out.println("Merhaba :"+ad.getValue());
   }
  }
  
  out.println("<br/> <a href='Servlet3'><h2>Cookiyi silmek için Servlet3'ye git</h2><a>");
  
  
 }

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }

}

Servlet3.java
package test;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Servlet3")
public class Servlet3 extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  
  response.setContentType("text/html");
  PrintWriter out=response.getWriter();
  
  Cookie[] co=request.getCookies();
  for(Cookie ad:co){
   Cookie c=new Cookie(ad.getName(),"");
   c.setMaxAge(0);
   response.addCookie(c);
  }
  
  out.println("<br/><h2>Tüm cookieler silindi !</h2><a>");
  
  
 }

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }

}

Açıklamalar
@WebServlet("/Servlet")
//Bu Servlet urlsinin /Servlet olacağını belirtir.

response.setContentType("text/html");
//response içerik tipinin text/html türünde olduğunu belirtir 

PrintWriter out=response.getWriter();
//out nesnesi server tarafından çıktı üretilmek için oluşturulur.

// x isimli y değerli cookie nesnei oluşturur.
Cookie co=new Cookie("x","y");

// cookienin saklanacağı süreyi saniye cinsinden belirler.
co.setMaxAge(60*60*24*7);

//responsea cookieyi ekler.
response.addCookie(co);

// tüm cookieleri alır.
Cookie[] co=request.getCookies();

// tüm cookieleri aldıktan sonra, x isimli cookienin değerine ulaşır.
for(Cookie ad:co){
   if(ad.getName().equals("x")){
   out.println("Merhaba :"+ad.getValue());
   }
  }


// x isimli cookieyi silme
//1.adım : degeri silinir.
Cookie co=new Cookie("x","");

//2.adım : saklanma süresi sıfırlanır.
co.setMaxAge(0);

//3.adım : responsea eklenir.
response.addCookie(ad);


Servlet Cookieler projesi

Servlet Cookieler projesi

Servlet Cookieler projesi

Servlet Cookieler projesi

Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)