|
|
|||||
Цитата:
[КЭП]его сделать ни чуть не проще, чем сокет сервер[/КЭП] |
|
|||||
Регистрация: Sep 2013
Сообщений: 12
|
Цитата:
Вот моя реализация сервера: - Для чтения данных из сокетов использую InputStreamReader + BufferedReader; - Далее, данные из буфера передаю в стороковую переменную (метод readLine()); - Создаю Document в который считываю байты и парсю эту самую строковую переменную; - В переменную типа Element извлекаю из документа элемент; - Потом, к примеру, могу у элемента извлечь название тэга методом getTagName(); что уже позволит мне передать элемент в нужную цепочку к дальнейшей обработке (извлечения значений атрибутов). Добавлю, что передаваемый xml файл очень простой, предположительно всего один тэг с атрибутами. Тэг служит пунктом назначения (то есть в какую цепочку отправить), а атрибуты уже содержат данные необходимые для обработки. Следственно... Конкретизируя мой вопрос: - Правильные ли я выбрал стримы-ридеры? Если нет, то какие лучше и почему? (я немного запутался в этом вопросе) - Приемлемый ли выбор принимать данные в строку, а потом преобразоть её в документ? Есть ли возможность передавать данные сразу в документ (соответственно отпарсив); быстрее ли будет обработка данных? - Всё-таки, DOM или SAX? (хотя лично, SAX ещё не пробовал). - Эффективный ли данный метод в общем(для данной задачи), да в эффективности обработки данных и простоте реализации в частности? Или есть лучше? Почему? Как правильно реализовать? P.S.: на джава-талке так никто и не ответил. |
|
|||||
Цитата:
Ресмус Если с англ. все ок, то я рекомендую Basham B., Sierra K., Bates B . - Head First Servlets and JSP (2nd Edition) (A Brain-Friendly Guide) - 2008 шикарная книга, просто и с юмором написана, я её сейчас читаю, и реально быстро начинаешь делать сложные серверные вещи. А если с англ. напряг то попробуй на javabegin.ru, там есть платные курсы по вебяве. А иначе никак писать явакод не научишся, учиться надо полюбому :-) Цитата:
SAX я тоже не пробовал, ничего сказать не могу. |
|
|||||
Не доводилось использовать XMLSocket, но если он работает по тому же принципу, что и Socket, то использование сервлета в качестве серверного решения не кажется верным. Сервлеты работают по принципу "запрос-ответ", логичнее было бы использовать URLLoader и на сервере - какой-то фреймворк для реализации REST API, построенный на сервлетах(в целях экономии времени, хотя никто не запрещает создать свою реализацию серверного API). Либо использовать ServerSocket на серверной стороне и работать в режиме постоянного подключения, если это требуется спецификой приложения, конечно. Да, в таком случае желательно использовать не XML(порядочное количество избыточных данных), а, скажем, AMF - он понятен Flash-у, и существуют готовые решения на Java для декодировании и сериализации. Например, можно использовать BlazeDS(нужны библиотеки flex-messaging-common.jar и flex-messaging-core.jar). Читаем:
Amf3Input in = new Amf3Input(SerializationContext.getSerializationContext()); in.setInputStream(clientSocket.getInputStream()); Object message = in.readObject(); AmfObject message = new AmfObject(); Amf3Output out = new Amf3Output(SerializationContext.getSerializationContext()); out.setOutputStream(clientSocket.getOutputStream()); out.writeObject(message); out.writeObjectEnd(); out.flush(); |
Часовой пояс GMT +4, время: 00:36. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|