Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > апплеты и приложения


Автор: Jylia 10.1.2013, 18:46
при написании дипломной работы возникла проблема надо из апплета либо отправить на сервер либо записать в файл но так как это не возможно наставник посоветовал преобразовать апплеты в приложение не подскажите как это сделать?

Автор: LSD 11.1.2013, 11:35
Отправить данные на сервер из апплета можно. А из подписанного и в файл можно записать.

Автор: _Y_ 11.1.2013, 22:42
Проще всего заменить наследование от Applet на (например) от JFrame с методом main. При этом методы помеченые @Override (если они помечены, конечно) и перегружающие соответствующие методы класса Applet окажутся ничего не перегружающими. Надо будет убрать эти пометки и прописать вызовы методов если они уже не вызываются в вашем коде - например, вызов метода start() . Ну и так далее.

Автор: Jylia 12.1.2013, 10:29
Цитата(LSD @  11.1.2013,  11:35 Найти цитируемый пост)
Отправить данные на сервер из апплета можно

 а случайно не подскажите как? ведь отправляется с помощью main а в апплете он не используется?!

Автор: _Y_ 12.1.2013, 22:51
Цитата(Jylia @  12.1.2013,  10:29 Найти цитируемый пост)
ведь отправляется с помощью main 


Отнюдь. Метод main ИМХО вообще не для этого предназначен. Он используется для создания объекта или нескольких, находящихся на верхнем уровне, т.е. композитно не агрегированных в другие объекты. Кроме того, метод раздает параметры командной строки тем объектам, которым они предназначены.

Если же кто-то загоняет сам код в метод main, то это его личные предпочтения. Можно ведь и вообще весь код в этот метод загнать и с объектами совсем не заморачиваться smile 

Мне кажется, общение с сервером из аплета ничем не отличается от такого же общения из приложения.

Автор: 4epT 18.1.2013, 12:03
Вы из апплета можете вызвать сервер по Http, на сервере обработать данные (которые пришли как параметры или как тело запроса). Могу привести примеры:

Код

String resp = Http.soap("http://domain/servlet?id=10&name=test", data, false, "UTF-8");


data - данные прийдут в теле запроса (ниже покажу как можно вычитать). Данные могут быть в любом формате, для простоты можно использовать json или xml.

false - данный параметр это личное мое решение ) отвечает использовать ssl или нет.

Остальное думаю понятно.... domain заменить на доменное имя Вашего приложения (например на localhost или 127.0.0.1).

Как получить данные в сервлете:

Код

                ServletInputStream inputStream = request.getInputStream();

                if (inputStream == null) {
                    throw new Exception("inputStream null.");
                }

                StringBuilder sb = new StringBuilder();

                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                char[] charBuffer = new char[128];
                int bytesRead = -1;
                while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
                    sb.append(charBuffer, 0, bytesRead);
                }


Ну вот как то так) в sb у Вас будет то что вы напишите в data.

Реализаций Http в инете полно...

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