Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Cookie and servlet!


Автор: tmp13 19.1.2007, 12:25
Есть сервлет берущий данные с веб станицы соотвественно что бы получить страницу нужно взять cookie... когда выполняю от себя всё ok! Когда выполня на сервере cookie не берутся((
код взятия cookie вынес отдельно:

Код

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.lang.ClassNotFoundException;
import java.lang.StringBuffer;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import java.util.zip.*;
import java.util.Date;
import java.text.DecimalFormat;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.io.*;
import java.util.Enumeration;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutput;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringReader;
import java.net.*;


public class Cookie 
{
  public Cookie()
  {
    System.out.println("start!!!");
    GetCookieFromURL();
  }
    public void GetCookieFromURL()
    {
      try 
      {
        String host = "http://www.yandex.ru";
        URL url = new URL(host);
        URLConnection urlconn = url.openConnection();
        
        String StringCookie="";
        for (int i=0; ; i++) 
        {
            String headerName = urlconn.getHeaderFieldKey(i);
            String headerValue = urlconn.getHeaderField(i);
            System.out.println(headerName);
            System.out.println(headerValue);
            if (headerName == null && headerValue == null) 
            {
                // No more headers
                break;
            }
            if ("Set-Cookie".equalsIgnoreCase(headerName)) 
            {
                // Parse cookie
                String[] fields = headerValue.split(";\\s*");
                StringCookie += fields[0]+";";
            }
        }
        System.out.println(StringCookie);
      }
      catch(Exception ex)  {ex.printStackTrace();}
    }
    
    public static void main(String[] args)
    {
      Cookie hello = new Cookie();
      System.out.println("yraaaaa not work!!!");
    }
}


yandex.ru c сервера пингуется...

Автор: JUncle 19.1.2007, 15:49
Цитата(tmp13 @  19.1.2007,  12:25 Найти цитируемый пост)
Есть сервлет берущий данные с веб станицы соотвественно что бы получить страницу нужно взять cookie... когда выполняю от себя всё ok! Когда выполня на сервере cookie не берутся((
код взятия cookie вынес отдельно:

Стоп, стоп, стоп...
Что значит чтобы получить страницу нужно взять cookie?
cookie берутся сервлетом из браузера клиента, если они перед этим были там установлены.
У HttpServletRequest есть метод - getCookies, который возвращает массив плюшек.
ЗЫ: Соответственно у HttpServletResponse етсь метод addCookie, позволяющий установить плюшку клиенту.

Автор: COVD 19.1.2007, 16:44
Вы отправляете запрос на сервер (яндекс) и читаете ответ. Если сервер положил куки в заголовок ответа, вы их там обнаружите. Если не положил, то их там и не будет. Сервер может всегда класть куки в ответ, а может в зависимости от типа клиента.  

 

Автор: JUncle 19.1.2007, 17:34
А, тут в этом плане - из сервлета получить страницу с куками...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)