Как изучить высокоуровневые [закрытые] понятия веб-разработки Java

6
задан BalusC 12 May 2010 в 12:43
поделиться

7 ответов

Лучший способ исследовать мир Java и соединить все точки - это просто использовать один из фреймворков, так как все они используют web.xml, context.xml и компоненты Java EE (все могут персистировать сущностные бобы Pojo). Поскольку вы уже знакомы с фреймворком Stripes, я могу порекомендовать эту книгу (она короткая и охватывает все названные вами аспекты):

Stripes: ...and Java Web Development Is Fun Again, автор Фредерик Дауд, Pragmatic Programmers, ISBN: 1934356212

Более основательным подходом для более глубокого понимания этих технологий Java EE было бы получение всех знаний, необходимых для сдачи этих двух сертификационных экзаменов Java:

Sun Certified Web Component Developer (SCWCD)

Sun Certified Business Component Developer (SCBCD)

2
ответ дан 9 December 2019 в 20:41
поделиться

Я действительно не понимаю файлы web.xml и context.xml.

Файл web.xml - это просто файл конфигурации, который указывает серверу приложений для каждого из них, какие фильтры / сервлеты загружать и создавать экземпляры и по каким шаблонам URL они должны быть вызваны.

context.xml - это просто еще один файл конфигурации, который сообщает приложению в каждой из них, где находится веб-приложение в локальной системе хранения и в каком контексте домена / URL оно должно прослушиваться.

Сервер приложений анализирует оба файла при запуске и предпринимает соответствующие действия.

Я не уверен, что представляет собой приложение Java EE в отличие от общего веб-приложения Java.

Неясно, какие ваши собственные определения «Java EE application» и «Generic Java Web application». Чтобы ответить на такой вопрос (даже если вы сами), вам нужно будет найти и / или переопределить определения. Но в целом существует два типа приложений Java EE: веб-приложения (обычно развертываемые в версии WAR) и корпоративные приложения (обычно развертываемые в версии EAR). Основное различие состоит в том, что второй включает в себя EJB и, следовательно, требует запуска в приложении, которое поддерживает EJB (например, Tomcat не поддерживает).

Я не могу понять, чем bean-компонент отличается от обычного Java-класса (POJO?) И чем он отличается от Enterprise Java Bean (EJB). Это только первые несколько вопросов, которые я мог придумать, но их гораздо больше.

Это просто термины, которые применяются в зависимости от цели (и истории) рассматриваемого класса. Термин «POJO» - это (обычно отрицательный) термин, представляющий Javabean, который является просто объектом значения (полностью без бизнес-логики, чистый bean-компонент только с методами получения / установки) и, как правило, является объектом модели, который является частью «наследства». программа, использующая EJB / Hibernate. Некоторые называют это VO (объект значения), другие называют это DTO (объект передачи данных), а третьи просто придерживаются "javabeans".

Что является хорошим способом узнать, как веб-приложения Java работают сверху вниз, а не просто как разработать приложение с определенной структурой? (Есть ли книга для такого рода вещей?) В конечном счете, я хотел бы достаточно хорошо разбираться в веб-приложениях Java, чтобы написать свой собственный фреймворк.

Начните с Head First Servlets и JSP . Прочтите Servlet API и попробуйте реализовать его самостоятельно. Однако знание HTTP также является обязательным. Прочтите / отладьте / воспроизведите / взломайте исходный код существующих реализаций API сервлетов с открытым исходным кодом (например, Tomcat ). Прочтите / отладьте / воспроизведите / взломайте исходный код существующих фреймворков с открытым исходным кодом (MVC) (например, JSF ). Постарайтесь понять, как они работают, а затем постарайтесь сделать это лучше. Что касается пути обучения («Какие навыки мне нужны?»), Я опубликовал аналогичный ответ до здесь .

3
ответ дан 9 December 2019 в 20:41
поделиться

Смотрите ответы на этот вопрос.

Кроме того, я создаю веб-приложения на Java без использования традиционного подхода на основе сервлетов. Обычно я использую Restlet для создания RESTful веб-приложений, которые я запускаю как отдельные Java-приложения со встроенными HTTP-серверами. В этой статье подробно описаны некоторые преимущества использования встроенного HTTP-сервера вместо создания традиционного Java веб-приложения и его развертывания в контейнере / сервере приложений. Если вы создаете "обычное" веб-приложение, а не RESTful (не обязательно, IMHO), то обратите внимание на Play, современный высокоуровневый MVC веб-фреймворк, который позволяет быстро разрабатывать с гораздо меньшими церемониями.

Удачи!

2
ответ дан 9 December 2019 в 20:41
поделиться

Я рекомендую Head First Servlets и JSP от Bates и Sierra. Некоторым наплевать на причудливый стиль, но это хорошее введение в Java EE. EJB не рассматриваются, но одна книга не может сделать все.

5
ответ дан 9 December 2019 в 20:41
поделиться

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

Если серьезно, то у веб-разработки на Java очень долгая история. С самого начала шла борьба между тяжеловесами и легковесами. Все началось с EJB, и это в основном отстой. Альтернативой всему этому были стойки. И это тоже отстой. Все началось с того, что Spring принес волну внедрения зависимостей, тогда JSF был более сложным, чем когда-либо. Наконец, появился Rails и просто обежал все, что могла предложить Java. Текущий урожай фреймворков Java демонстрирует некоторые из устаревших и боевых машин предыдущего поколения, но он стал лучше. В общем, меньше конфигурации и попытка быть более компактной, с меньшим количеством зависимостей и уровней.

Чтобы ответить на ваш вопрос более прямо, просто посмотрите на разницу между контейнером сервлетов, таким как tomcat, и полным сервером приложений Java EE, таким как Glassfish или JBoss. По сути, все сводится к тому, хотите ли вы использовать EJB-компоненты. Если вы планируете написать свой собственный фреймворк, вы этого не сделаете. В принципе, просто посмотрите, как работают сервлеты / контейнеры сервлетов. Помимо этого, посмотрите исходный код других фреймворков.

0
ответ дан 9 December 2019 в 20:41
поделиться

Если вы пытаетесь понять, для чего предназначены все биты в спецификации Java EE и какие из них вы могли бы использовать для веб-приложений, я настоятельно рекомендую ознакомиться с Java EE Учебник . Вы, вероятно, можете пропустить подробные описания возможностей, так как в основном вы хотите получить общий обзор каждой технологии, ее возможностей и того, как она сочетается со всем остальным. Однако обязательно ознакомьтесь с некоторыми примерами, связывающими вместе веб-уровень, EJB-компоненты и постоянство.

0
ответ дан 9 December 2019 в 20:41
поделиться

Get "Heads First Servlets and JSP " - это наполовину странно выглядящая книга, но содержание отличное, и люди используют ее в качестве руководства для подготовки к экзамену Sun Certified Web Component Development (SCWCD), для которого экзамен SCJP (Sun Certified Java Programmer) является экзаменом предварительное условие.

Вам следует серьезно подумать о получении как SCJP, так и SCWD, хотя бы потому, что вы заставляете себя пройти через материал. Они не гарантируют, что вы станете лучшим программистом, чем вы сейчас, но познакомят вас с материалами по Java / Java EE, которые (обычно) доступны только на рабочем месте.

Я также использовал несколько онлайн-курсов для самостоятельного изучения на сайте webucator.com и предлагаю вам ознакомиться с их курсами SCJP 5.0 и Web Services (более поздние аналогичные, но в отличие от разработки веб-компонентов.)

Существуют фреймворки, которые делают веб-разработку на Java EE менее болезненной, но чем больше вы разбираетесь в них, тем лучше вы понимаете это (и вы будете гораздо лучше оснащены чтобы использовать его или его альтернативы.)

Еще одна книга, которую вы, возможно, захотите проверить (возможно, вам следует проверить в первую очередь), - это Веб-разработка Дауни с Java: использование Hibernate, Jsp и сервлетов . Сейчас он не издается, но есть в наличии подержанные экземпляры. Профессор Дауни использовал эту книгу для проведения курса Java EE в Florida Int. Университет, охватывающий начало и конец разработки веб-приложений на основе баз данных. *

  • У вас должны быть некоторые знания в области SQL и теории реляционных баз данных, даже если вы в конечном итоге будете использовать OR mappers. Этот тип знаний идет рука об руку с разработкой нетривиальных веб-приложений.
0
ответ дан 9 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: