Подтвердить что ты не робот

Разработка Java для Интернета

Я хочу начать разработку для Интернета с помощью Java. У меня есть некоторые базовые знания Java, поэтому это не проблема, но я в недоумении, когда речь идет о расшифровке различных технологий для использования в веб-приложениях.

Какие варианты доступны для меня? Как они работают? Существуют ли какие-либо рамки, похожие на Django/Ruby on Rails, которые я мог бы использовать для упрощения?

Любые ссылки, которые могли бы помочь с пониманием того, что доступно, будут высоко оценены.

4b9b3361

Ответ 1

Java-фреймы представлены в двух основных вариантах. Один из них называется "Action" Framework, другой - "Component" Framework.

Механизмы действий специализируются на сопоставлении HTTP-запросов с Java-кодом (действиями) и привязке HTTP-запросов к объектам Java. Сервлеты - это самое основное из Рамок Action, и является основным для всех остальных.

Struts - самая популярная фреймворк Action, но я не могу в чистой совесть рекомендовать ее всем. Struts 2 и Stripes более современны и очень похожи друг на друга. Оба являются легкими в конфигурации и просты в использовании из коробки, обеспечивая очень хорошую функциональность связывания.

Компонентные рамки фокусируются на пользовательском интерфейсе и, как правило, продвигают более управляемую событиями архитектуру на основе компонентов пользовательского интерфейса высокого уровня (кнопки, списки и т.д.). Структуры, как правило, скрывают этот фактический HTTP-запрос от кодера под несколькими уровнями. Они значительно упрощают разработку более продвинутых пользовательских интерфейсов..NET - это компонентная среда для Windows. На Java популярными компонентами являются JSF (стандарт) и Wicket.

Как правило, если вы создаете "веб-сайт". это нечто более похожее на представление информации (например, в блоге или на сайте сообщества), рамки действий работают лучше. Эти сайты, как правило, проще, часто получают закладки, требуют "симпатичных URL-адресов" и т.д. Это, как правило, проще сделать с каркасом Action.

Компонентные рамки намного лучше подходят для таких приложений, как бэк-офисные приложения с большим количеством элементов пользовательского интерфейса и сложные рабочие процессы. Вы найдете, в частности, с инструментами, что эти стили приложений будут работать быстрее, используя компонентную инфраструктуру. Но инфраструктура компонентов имеет более сложный рабочий процесс запроса, иногда полагаясь на скрытое состояние, множество действий POST и т.д. Многие из них имеют "ужасные" URL-адреса и иногда создают страницы, которые трудно закладок.

Обе структуры могут использоваться для обеих задач, только некоторые из них более подходят для задачи, чем другие.

Ни одна из этих фреймворков не адресует персистентность, но многие из них имеют модули расширения или идиомы, которые работают с JPA/EJB3 или Hibernate.

Ответ 2

Ваша базовая веб-технология Java - это сервлеты. Сервлеты позволяют писать код Java, который отвечает на различные HTTP-события (doGet, doPost, doPut и т.д.). Они обычно используются для контроллеров в архитектуре MVC. Ссылка: http://java.sun.com/products/servlet/

JSP позволяет писать HTML со встроенной Java, а не наоборот (в сервлетах). JSP был расширен через JSF, чтобы внедрить более современные архитектурные достижения. Это в той же строке, что и PHP и ASP. Это часть представления архитектуры MVC. Ссылка: http://java.sun.com/developer/technicalArticles/GUI/JavaServerFaces/

Многие более сложные приложения используют Enterprise Java Beans (EJB) для управления сеансом, кластеризации и т.д. Это не веб-технология, как таковая, но вы видите, что она идет рука об руку при работе с более сложные webapps. Альтернативы включают такие рамки, как Spring. EJB: http://docs.jboss.org/ejb3/app-server/tutorial/ Spring: http://www.springframework.org/

Кроме того, вы захотите ознакомиться с технологией ORM (после сервлетов и JSP/JSF). Ведущая структура ORM в настоящее время является Hibernate. Это позволяет сопоставлять таблицы SQL с Java-объектами и взаимодействовать с ними соответственно. Это более продвинутый материал, поэтому сохраните его, когда вы пытаетесь обвести голову вокруг EJB/Spring и т.д. Ссылка: http://www.hibernate.org/

edit: Я забыл определить ORM. Это означает Реляционное сопоставление объектов /Mapper (любая версия "Карты", которую вы хотите использовать:)

Ответ 3

Начните с JSP, поддерживаемого логикой в ​​Java-классах. Или используйте сервлеты.

Преимущество использования JSP и Servlets заключается в том, что вы получаете информацию о том, что делают все фреймворки под капотом. И это понимание имеет решающее значение для определения того, как делать X в этой конкретной структуре.

Кроме того, JSP очень прост. Вы можете легко увидеть, что вы делаете, и очень легко увидеть это, когда испортите представление с помощью бизнес-логики.

И довольно много фреймворков (Struts, Spring MVC) используют JSP в качестве своей технологии просмотра. Это естественный первый шаг в веб-разработке с использованием Java.

Ответ 4

Я не знаю, есть ли что-то довольно приятное, как Django для Java, но Spring имеет легковесную веб-структуру, построенную на J2EE

http://www.springframework.org/about

Гибкое веб-приложение MVC каркас, построенный на ядре Springфункциональность. Эта структура высоко настраиваемый с помощью стратегии интерфейсов и вмещает несколько такие как JSP, Velocity, Плитки, iText и POI. Заметим, что Spring средний уровень может быть легко в сочетании с веб-уровнем на основе любого другие веб-структуры MVC, такие как Struts, WebWork или Tapestry.

Ответ 5

что-то вроде grails?

есть также проекты из spring

Ответ 6

Вам нужно начать с сервлетов и JSP. В Java много веб-фреймворков, и все они основаны на этих двух технологиях.

Ответ 7

Вы можете попробовать Jboss Seam: http://www.seamframework.org/Documentation/GettingStarted

Если вы используете Eclipe в качестве своей IDE, есть хорошая интеграция с помощью Jboss Tools или вы можете использовать инструмент Seam-Gen, который поставляется вместе с Seam. Это позволяет вам определять таблицу базы данных (или таблицы) и с помощью нескольких простых команд, создавать из нее весь исполняемый веб-проект. Это хороший способ заставить мяч прокатиться.

Ответ 9

Это очень открытый вопрос. Короткий ответ "да" - это рамки, библиотеки и стандарты, чтобы делать все от написания вещей на уровне HTTP-запроса до систем управления контентом в Java.

Вы также можете использовать другие языки (например, Python, Ruby и т.д.) на JVM.

Для некоторых технологий только для Java изучите JSP/Servlets, Struts, Struts2 (которая является обновленной версией Webwork), Spring MVC, Tapestry, web4j, Wicket.

В JVM существуют другие структуры, но используют языки, отличные от Java, такие как Grails.

Чтобы начать работу, я бы загрузил Eclipse (последняя версия) и Tomcat. Создайте новое веб-приложение в Eclipse. Существуют руководства, которые помогут вам начать работу.

Начните с изучения того, как работают JSP и сервлеты, это немного низкий уровень и не являются действительно фреймворком, но позволят вам быстро вставать и работать. Оттуда исследуйте и выбирайте свою структуру.

Spring MVC довольно легко настроить и продолжить. Я уверен, что есть другие.

Ответ 10

Если вы уже знаете Ruby On Rails, вы можете использовать его с JRuby и развертывать на сервере Java (например, Tomcat) с помощью Warbler.

В чистой Java Wicket имеет хороший подход и становится довольно популярным.

Ответ 11

Прежде чем изучать эти рамки, почему бы не начать изучение, где все началось? Сначала попробуйте программирование с помощью сервлетов, чтобы вы могли заглянуть в основную часть большинства этих веб-фреймворков java. Это поможет вам лучше понять J2EE.

Ответ 12

J2EE является стандартом. Вы можете использовать это для создания приложений с помощью серверных страниц, сервлетов и EJB.

Struts также очень популярная структура, которая использует JSP и сервлеты. Его немного сложно настроить, но это очень хороший вариант для сайтов среднего размера.

http://en.wikipedia.org/wiki/Struts

Ответ 13

В целом, Java более основанная на компонентах, т.е. у вас нет фреймворков, которые делают все это для вас (например, вам, вероятно, придется самостоятельно выбирать инфраструктуру доступа к базе данных). Для доступа к данным я бы рекомендовал Hibernate или iBATIS.

Для front-end есть буквально сотни фреймворков. Изучите JSF, Wicket, Struts 2, Stripes - в зависимости от того, какой вы используете, зависит от ваших конкретных потребностей, поскольку все они имеют разные преимущества.

И для бизнес-уровня я бы рекомендовал Spring Framework, который очень обширен и имеет отличный справочник/учебник:)

Ответ 14

Я изучил Java в колледже, когда он был в версии 1.1.5. Я недавно начал пытаться программировать для Интернета, но это не имело смысла, пока я не прочитал Head First Servlets и JSP. Есть еще много вещей, связанных с веб-разработкой с Java, чем я когда-либо реализовал, и без этой книги я бы бросил и просто использовал PHP.