Веб-разработка на Java EE, с чего мне начать и какие навыки мне нужны?
Я хочу узнать, по крайней мере, на базовом уровне, как создавать веб-приложения на Java (исходя из.NET). Я хотел бы иметь возможность создавать, развертывать простое приложение типа CMS с нуля.
Что именно мне нужно выучить?
Tomcat, кажется, хороший веб-сервер для Java.
Какие есть варианты для Интернета? Я знаю, что есть Hibernate для ORM.
Есть ли в Java MVC? Как насчет JSP? Могут ли MVC и JSP быть вместе? NetBeans?
Может быть, книга, которая охватывает все это?
9 ответов
(Обновлено сентябрь 2018 г.)
Что именно мне нужно выучить?
Я предполагаю, что вы уже знакомы с технологиями на стороне клиента, такими как HTML, CSS и JS, поэтому я не буду вдаваться в подробности. Я также предполагаю, что вы уже знакомы с базовой Java. Следуйте инструкциям Oracle по Java и, если возможно, получите книгу или курс OCA.
Затем вы можете начать с JSP/Servlet, чтобы изучить основные концепции веб-разработки на Java. Хорошие учебные пособия можно найти в главах 3–8 учебного руководства по Java EE 5 Oracle и на Coreservlets.com ( Beginner-Intermediate и Advanced, также JDBC). Обратите внимание, что начиная с Java EE 6, JSP удален из учебника по Java EE в пользу JSF, и с тех пор JSP практически не изменился. Вот почему вы можете смело использовать для этого довольно старый учебник по Java EE 5. Наиболее важной вещью в отношении JSP является тот факт, что написание простого кода Java в файлах JSP с использованием <%
скриптлеты %>
официально не рекомендуется с 2003 года. См. также Как избежать использования кода Java в файлах JSP? Поэтому любые учебники, которые все еще охватывают скриптлеты, следует пропустить, поскольку они определенно приведут вас в нисходящую спираль изучения плохих практик.
У нас также есть хорошие вики-страницы о JSP, сервлетах, JSTL и EL, где вы можете изучить основы и найти больше полезных ссылок.
Tomcat, кажется, хороший веб-сервер для Java.
Это. Однако он ограничен в возможностях. По сути, это пустой сервлет-контейнер, реализующий только части JSP/Servlet огромного API Java EE. Если вы когда-нибудь захотите использовать EJB или JPA, вам нужно выбрать другое, например WildFly, TomEE, Payara, Liberty, WebLogic и т. Д. В противном случае вам придется использовать Spring вместо Java EE. А именно, невозможно установить EJB в контейнере с сервлетами без модификации ядра ядра, в случае с Tomcat вы будете изобретать TomEE заново. Смотрите также Что такое Java EE?
Я знаю, что есть Hibernate для ORM.
Ранее, в эпоху J2EE, когда JPA не существовало и EJB2 был ужасен, Hibernate был автономной средой и часто использовался в сочетании с Spring для замены EJB. С момента появления JPA в Java EE 5 (2006) Hibernate стал реализацией JPA. Вы можете изучить JPA в учебном пособии по Java EE, часть VIII. Кроме того, EJB3 был значительно улучшен на основе уроков, извлеченных из Spring. См. Также Когда необходимо или удобно использовать Spring или EJB3 или все вместе?
Есть ли в Java MVC? Что насчет JSP? Могут ли MVC и JSP быть вместе? JavaBeans?
Вы можете, но это много изобретает колесо, когда речь идет о связывании модели с представлением (преобразование, проверка, изменение слушателей и т. Д.). Среда MVC в Java EE называется JSF. До Java EE 6 он работал на JSP, который является довольно устаревшей технологией представления. JSP был заменен Facelets. Вы можете изучать JSF в главах 7–17 учебного курса по Java EE. Кстати, вы также можете использовать JSF на Tomcat, вам нужно только установить его отдельно. Инструкции по установке можно найти на домашней странице Mojarra. WildFly, TomEE, Payara, Liberty, WebLogic и т. Д., Будучи полноценной реализацией Java EE, уже предоставляют JSF (и CDI, BV, JSONP, JAX-RS, EJB, JPA и т. Д.), Поэтому вам не нужно установить его отдельно. Смотрите также Как правильно установить и настроить библиотеки JSF через Maven?
Может быть, книга, которая охватывает все это?
Есть несколько книг. Я бы порекомендовал начать с книги, посвященной Java EE в целом, книги, более ориентированной на JSF, и книги, более ориентированной на JPA. Убедитесь, что вы выбрали самую свежую книгу по этой теме. Таким образом, не старая книга для Java EE 5 или JSF 1.0 или около того.
И последнее, но не менее важное: не обращайте внимания на сайты очистки фрагментов кода, поддерживаемые любителями, которые уделяют основное внимание доходам от рекламы, а не обучению, таким как roseindia, tutorialspoint, javabeat, journaldev, javatpoint, codejava и т. Д. Их легко узнать по нарушению рекламных ссылок / баннеры и фрагменты кода JSP, содержащие скриптлеты.
Смотрите также:
Что именно мне нужно выучить?
Минимально,
- Ява язык
- Java API, в том числе JDBC для доступа к базе данных
- IDE или текстовый редактор + Ant
- Java EE, в основном, сервлеты и JSP
- Контейнер сервлета (такой как Tomcat)
Tomcat, кажется, хороший веб-сервер для Java.
Это "прилично". Если вы не увлекаетесь EJB, вам, вероятно, не нужно будет больше ничего изучать. Glassfish 3 в последнее время выглядит довольно круто, но я пока не играл с ним. Обратите внимание, это "больше", чем веб-сервер. Это контейнер сервлетов (то есть он может запускать приложения с использованием технологии сервлетов).
Какие есть варианты для Интернета?
Около миллиарда разных рамок. Действительно, выбрать один действительно "сложно". Очень заманчиво попробовать их все, но в конечном итоге это невозможно.
Я знаю, что для ORM есть спящий режим.
Я немного против ORM, но Hibernate - это то, что вам нужно, если вам нужна "полная" ORM. Вы также можете попробовать "частичные" ORM, такие как поддержка Spring JDBC или iBatis.
У Java есть MVC? что насчет JSP? могут ли MVC и JSP быть вместе? фасоль?
Да, большинство веб-фреймворков Java поддерживают MVC. Spring MVC хорош, но я не могу рекомендовать ничего другого (особенно, не Struts 1!). JSP - это просто шаблонизатор HTML (или XML). Старая школа JSP со встроенным Java-кодом не крутая; современный JSP с файлами тегов и библиотеками довольно хорош.
Я полагаю, что большинство фреймворков позволит вам использовать JSP для рендеринга ваших V; Spring MVC и Struts делают. Некоторые позволят вам использовать что-то еще (Velocity, Freemarker и т. Д.).
Бобы - это просто соглашение для объектов. По сути, это означает, что вы используете методы получения и установки (или некоторые альтернативы), и вы следуете некоторым правилам. Это должно позволить вашему объекту манипулировать определенными инструментами. Типичным примером является GUI, некоторые инструменты позволят вам создавать компоненты GUI для редактирования произвольных bean-компонентов (то есть они будут визуализировать форму для редактирования ее полей).
Вам нужны HTML, CSS и JavaScript - все обычные подозрения для веб-разработки.
У Tomcat есть встроенный веб-сервер, но это движок сервлета /JSP. Apache - это чистый веб-сервер.
Вы должны изучить JSP, который является языком шаблонов для генерации сервлетов, которые генерируют вывод HTML. Вы захотите написать их, используя JSTL, а не скриптлеты.
Если вы работаете с CRUD-приложениями, вам необходимо изучить JDBC и реляционные базы данных. Вы должны сделать это, прежде чем пытаться использовать Hibernate или любой другой ORM, потому что это основа, на которой они построены.
JavaBeans - это просто стандарты для объектов Java.
Если вы готовы, я бы порекомендовал среду Spring.
У Java есть MVC?
У Java есть разные фреймворки, такие как Struts2, Spring MVC
как насчет JSP?
JSP - это библиотека шаблонов. Есть несколько альтернатив, которые вы можете попробовать, как FreeMarker и Velocity. AFAIK Freemarker - хорошая библиотека шаблонов. Его легче, чем JSP. Проверьте этот FreeMarker: открытая альтернатива JSP - JavaWorld
могут ли MVC и JSP быть вместе?
Я принимаю MVC в качестве основы, упомянутой ранее. Все фреймворки имеют поддержку JSP, но вы должны проверить поддержку других библиотек шаблонов в соответствующей документации фреймворков. AFAIK Struts2 to имеет очень хорошую поддержку Freemarker.
фасоль?
Я не знаю много об этом. Но используя бины, мы можем напрямую отобразить данные формы в базы данных.
Может быть, книга, которая охватывает все это?
У каждого каркаса есть своя книга. Для Struts2 - Struts 2 в действии
String MVC - посмотрите на эти вопросы, рекомендуя книги для Spring и Spring MVC. Книжное предложение для Spring Framework и Spring Books: какой выбрать
У Fremarker очень хорошая документация - Руководство по FreeMarker
Для начала веб-разработки на Java -
http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596
Я считаю, что большинство традиционных вариантов веб-разработки на Java довольно тяжелые, и есть несколько хороших альтернатив:
Play - это MVC-фреймворк, который ориентирован на то, чтобы быть легковесным, простым и обеспечивать быстрое развитие - при этом придерживаясь чистой Java, а не более динамичного языка на основе JVM. Он довольно новый, но уже впечатляющий, и вокруг него быстро сформировалось хорошее сообщество.
Grails - это инфраструктура MVC, вдохновленная Ruby on Rails, которая написана и использует Groovy, язык сценариев на основе Java. Grails зрелый, крепкий и широко уважаемый, с сильным сообществом. Groovy - это в основном надмножество Java, с лучшим синтаксисом и некоторыми замечательными функциями, такими как замыкания, поэтому изучение его - отличный способ изучения Java.
Если вам нужно / вы хотите создавать веб-сайты / сервисы / приложения RESTful, Restlet - фантастическая структура - я большой поклонник. Это просто, просто и гибко. Отличное сообщество тоже.
Google App Engine также интересный вариант. Он размещен, что может представлять интерес, а может и не представлять, но у него довольно простой API и хороший SDK.
Я уверен, что есть и другие, но это те, которые я могу придумать не покладая рук.
Удачи и приятного времяпровождения!
Если вы не хотите работать с HTML, CSS, XML, JavaScript и т. Д..
Попробуйте инфраструктуру Vaadin, она хорошо документирована, проста в освоении и позволяет легко и просто создавать красивый интерфейс. (просто напишите код Java, конечно, вам нужен сервер сервлетов, Tomcat или Jetty будут в порядке)
Я программирую на PHP/C, и я нашел отличную возможность перейти на Java без изучения всех классов и парадигм, присущих Java-программированию. Groovy позволил мне быстро работать продуктивно, затрачивая время, чтобы больше узнать о java и всех доступных инструментах / инфраструктурах / библиотеках.
Лучше вы изучаете java. Затем вы изучаете сервлеты и JSP. Затем, переходя на MVC, вы переходите в Struts или Spring или в любую другую инфраструктуру с поддержкой java/java.
Поскольку вы новичок в Java, я настоятельно рекомендую вам сначала изучить базовый язык. Это поможет вам независимо от того, какую технологию вы выберете для своего веб-приложения.
Хорошим онлайн-ресурсом является Sun Java Tutorial - http://java.sun.com/docs/books/tutorial/