Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в апплете получть данные от servlet? 
:(
    Опции темы
bio_hazard
Дата 18.8.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.6.2007

Репутация: нет
Всего: 1



Здравствуйте. У меня есть задача которую я хочу решить используя апплет. Она не сложная, нужно просто из бд дергать данные за определенный интревал времени. Но не могу понять как мне передать в servlet дату, а потом считать результат ?
PM MAIL   Вверх
Keyo
Дата 18.8.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Это почти готовый класс... Сам писал и к тому же не доделал, но в принципе работает.

Код


import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class ClientConnection {

    public static final String POST_METHOD       = "POST";
    public static final String GET_METHOD        = "GET";
    private final static String DEFAULT_CHARSET  = "UTF8";
    private final static String CONTENT_TYPE     = "application/x-www-form-urlencoded";
    
    private URL url;
    
    public ClientConnection(URL url) {
        this.url = url;
    }
    
    public ClientConnection(String url) {
        try {
            this.url = new URL(url);
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
        }
    }
    
    public ResultSet doGet() {
        return processRequest(GET_METHOD, null);
    }

    public ResultSet processRequest(final String method, final HashMap<String, Object> params) {
    
        HttpURLConnection connection = null;

        PrintWriter out = null;
        String key;
        ResultSet result = new ResultSet();

        try {
            connection = (HttpURLConnection) url.openConnection();

            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestProperty("Content-Type", CONTENT_TYPE);
            connection.setRequestMethod(method);
            connection.setConnectTimeout(30000);
                        
            if (params != null) {
                Set<String> set = params.keySet();

                Iterator<String> itr = set.iterator();

                StringBuilder paramStr = new StringBuilder();

                while (itr.hasNext()) {
                    key = itr.next();
                    if (paramStr.length() > 0) {
                        paramStr.append("&");
                    }
                    paramStr.append(key).append("=").append(params.get(key));
                }

                out = new PrintWriter(connection.getOutputStream());
                out.print(paramStr.toString());
                out.flush();
            }

            InputStream is = connection.getInputStream();
            
            String charset = getCharset(connection.getHeaderField("Content-Type"));
            
            BufferedReader in = new BufferedReader(new InputStreamReader(is, charset));
            
            
            StringBuilder strBuilder = new StringBuilder();
            
            int i;
            while ((i = in.read()) != -1) {
                strBuilder.append((char)i);
            }
            
            result.setData(strBuilder.toString());
            
            result.setHeaders(connection.getHeaderFields());
            
        } catch (final FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (final IOException ex) {
            ex.printStackTrace();
        } catch (final java.security.AccessControlException ex) {
            ex.printStackTrace();
        } catch (final Exception ex) {
            ex.printStackTrace();
        } finally {
            if (out != null) {
                out.close();
            }
            if (connection != null) {
                connection.disconnect();
            }
        }
        return result;
    }

    private static String getCharset(String contentType) {
        
        String charset = DEFAULT_CHARSET;
        if(contentType != null) {
            contentType = contentType.toLowerCase();

            if(contentType.indexOf("charset=") > -1) {
                charset = contentType.substring(contentType.indexOf("charset=") + 8);
            }
        }
        return charset;
    }
   /* 
    public static void main(String[] args) {
        try {
            ClientConnection connection = new ClientConnection();
            connection.doGet(new URL("http://www.google.ru"));
        } catch (MalformedURLException ex) {
            Logger.getLogger(ClientConnection.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    */
    final public class ResultSet {
        
        private String data = null;
        private Map<String, List<String>> headers = null;
        
        public String getData() {
            return data;
        }  
        
        private void setData(String data) {
            this.data = data;
        }
        
        public Map<String, List<String>> getHeaders() {
            return headers;
        }
        
        private void setHeaders(Map<String, List<String>> headers) {
            this.headers = headers;
        }
    }
}

PM MAIL   Вверх
bio_hazard
Дата 18.8.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 28.6.2007

Репутация: нет
Всего: 1



Спасибо, буду пытаться smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.