2013-05-16 3 views
1

Я спрашиваю, потому что я видел только java beans, используемые с фреймворком, как struts или JSF.Использование java beans в AJAX

Возможно ли отправить и получить доступ к компоненту java по запросу AJAX?

Servlet myServlet создает и заполняет экземпляр java bean и устанавливает его в области запроса. Уже загруженная страница jsp/html использует AJAX для запроса данных из myServlet. Можно ли каким-либо образом получить доступ к этому компоненту? Подумав некоторое время, я пришел к согласию, что это невозможно.

Если это невозможно, было бы лучше всего пытаться передавать данные из модели (то есть пользовательскую информацию из базы данных) асинхронно с клиентом при использовании Tomcat/Servlets и JSP?

ответ

1

Это технически возможно, если вы сериализуете javabean в массив байтов или даже строку с кодировкой base64, используя обычный Java Serialization API.

Но как было бы целесообразно использовать запатентованный формат для передачи данных? Как бы клиенты, не связанные с Java (например, JavaScript!) Когда-либо могли использовать сериализованный объект Java? В наши дни XML, JSON и даже CSV гораздо более широко поддерживаются и принимаются. Практически на каждом уважаемом языке программирования есть инструменты для простого преобразования между XML/JSON/CSV и моделью, как это определено на рассматриваемом языке программирования. Например. Java имеет JAX-RS API для простого преобразования между javabeans и XML или JSON. JavaScript имеет — очевидно — встроенная поддержка JSON (угадайте, что означает JS в JSON).

Чтобы узнать и играть с основной концепцией, голова к этому ответу: How to use Servlets and Ajax?

Чтобы узнать о преимуществах JAX-RS над сервлетом, голова к этому ответу: Servlet vs RESTful

+0

Благодарим вас за ответ. У меня было такое чувство. Я, вероятно, буду использовать XML или JSON для данных. Я буду читать ваши ссылки и, надеюсь, прояснить ситуацию больше. Еще раз спасибо! – GCon

+0

Добро пожаловать. Если вы используете только клиентов на основе JavaScript, JSON предпочтительнее, поскольку он более компактен и сразу же обрабатывается. Однако, если вы достигаете более разных клиентов, предпочтительнее поставлять несколько разных форматов. Это также показывает, что JAX-RS превосходит. – BalusC

1

Вы можете использовать struts или jsf, как обычно, для создания разметки (html). И затем используйте разметку, которая была построена через ajax, а затем добавлена ​​в dom. Если вы знакомы с jQuery, то вроде jQuery ('# selector'). Load ('actionUrl.action'); Но если вы хотите изучить Java-компонент, вам придется сериализовать его в xml или json. Если вы используете веб-фреймворк, такой как struts2 или spring, вероятно, существует механизм для этой сериализации для вас. Если вы хотите отредактировать компонент, вам придется сериализовать, а затем отредактировать сериализованный bean-компонент и затем десериализоваться обратно в java bean-компонент.

+0

Благодарим вас за ответ. Проект был академическим, и JSF не был запрошен. Мы экспериментируем с ним в конце концов, пытаясь понять, перечитывает ли обучение, используя простой JSON. – GCon

Смежные вопросы