Я спрашивал многих людей, с чего начать изучение веб-разработки на Java, я уже знаю базовую Java (Threading, Generics, Collections, небольшой опыт работы с (JDBC)), но я не знаю JSP и сервлетов. Я сделал свою долю разработки с несколькими веб-приложениями, использующими PHP для серверной части и HTML, CSS, Javascript, HTML5 для клиентской стороны.
Большинство людей, которых я спрашивал, предлагали мне перейти прямо в Hibernate, в то время как некоторые говорили, что мне не нужно изучать сервлеты и jsps, и я должен немедленно изучить среду Spring. Это правда? мне не нужно изучать сервлеты и JSP, чтобы изучать Hibernate или Spring?
Все их ответы смутили меня, и теперь я совершенно заблудился, чему учиться или учиться. Я чувствую, что если бы я пропустил изучение JSP и сервлетов, я бы пропустил много важных концепций, которые наверняка помогут мне в будущем.
Итак, вопрос, нужно ли мне иметь базовые / известные сервлеты и JSP для изучения Spring, Hibernate или любых других веб-фреймворков Java.
источник
Bear Bibeault
Хорошо известный разработчик и авторы настаивают, чтобы изучать JSP и сервлеты, прежде чем изучать ЛЮБОЙ фреймворк. Кто-нибудь хочет показать, почему это может или не может быть применимо сегодня? Вот его пост - coderanch.com/t/521300/JSP/java/JSP-servlets-strutsBear Bibeault
. Смотрите эти две ссылки - coderanch.com/t/633527/Spring/… и coderanch.com/t/633526/JSP/java/…Ответы:
Если вы хорошо разбираетесь в HTML, CSS и JavaScript, у вас есть возможность познакомиться со многими людьми, которые в конечном итоге занимаются веб-разработкой. Концепции JSP очень похожи на PHP. Причуды разные. Сервлет - это имя фрагмента кода Java, который обслуживает запрос. Это действительно так. Весь оригинальный фреймворк Struts представлял собой один сервлет.
Я бы добавил Tomcat или Jetty в ваш список технологий для изучения. Tomcat - это оригинальная реализация Java Servlet Container, которая также является полнофункциональным и довольно популярным веб-сервером. GlassFish построен поверх него. Я использовал Jetty вместо Tomcat в моих новых проектах, потому что это проще, гибче и быстрее. Jetty был разработан для создания веб-сервисов, а не веб-приложений. Но веб-приложение - это просто веб-служба, которая обслуживает HTML в ответ на необработанные HTTP-запросы, поэтому, если вы понимаете HTTP (который вы можете изучить важные части за несколько часов в день), с ним очень легко работать.
Вы можете создать небольшой веб-сайт с Tomcat и JSP ( учебник здесь или JSF), зная, что вы знаете, и потратив несколько часов на изучение учебников. Таким образом, вы можете начать, где вам удобно, прежде чем растягиваться. Затем создайте javax.servlet.http.HttpServlet, который пишет «<html> <head> <title> Hi </ title> </ head> <body> <h1> Hello World </ h1> </ body> </ html > "к объекту ответа, укажите его в своем веб-файле Tomcat и отправьте HTTP-запрос из веб-браузера. Это не ракетостроение. Все веб-платформы Java являются вариациями этих двух основных действий.
Если вы идете по маршруту Jetty, он еще менее структурирован. Посмотрите этот пример Hello Jetty .
Если вы только собираетесь сделать блог или стандартный сайт электронной коммерции, я хотел бы начать с Squarespace или Wordpress или что - то. Вы получаете столько с полки, что больше нет способа оправдать пользовательское кодирование.
Сильной стороной Java для веб-приложений является ее надежность, удобство обслуживания и производительность. PHP или Ruby / Rails проще, но Java будет масштабироваться настолько, насколько вы захотите. Я не поражен какой-либо из веб-фреймворков Java. Если у вас есть команда людей, работающих над большим веб-приложением, или вам нужно использовать Hibernate, то такая среда, как Spring, действительно сияет. Весна самая популярная. Если вы немного знакомы с сервлетами и JSP / JSF, узнайте, как Spring связывает их вместе с моделью данных.
Если вы ведете блог или систему управления контентом, возможно, вам не помешает база данных NoSQL. Но я бы сказал, что базы данных NoSQL - это просто слой кеширования в файловой системе, а не замена реляционных баз данных. Я думаю, что редко, когда проект, который хорошо подходит для базы данных NoSQL, подходит для разработки на Java.
Вещи, для которых все еще требуется пользовательский высокопроизводительный код (на Java, PHP и т. Д.), Вероятно, будут питать их от реляционной базы данных / базы данных SQL. Я бы рекомендовал вам сначала ознакомиться с SQL и JDBC (Java Database Connectivity). После того, как вы освоитесь с миром объектов Java, миром реляционных баз данных и SQL, вы можете изучить Ebean / JPA (API персистентности Java) / ORM (объектно-реляционное сопоставление), который связывает мир объектов с реляционным миром.
ОРМ хитры и странны. Большинство в конечном итоге стоит борьбы. Eese - самый простой из известных мне. Я чувствую себя более комфортно после 8 месяцев, чем в Hibernate после 12 лет. Я знаю многих людей, которые используют Spring с Hibernate, и у них, похоже, нет проблем, или они даже не особо осведомлены о том, что такое Hibernate или что делает, поэтому я бы сказал, что если вы собираетесь использовать Hibernate, сделайте это. через весну. Может быть, только потому, что я работал с ним дольше, мне удалось полностью заглушить Hibernate с парой хеш-карт для тестирования, что потрясающе (обзор доступен по запросу).
У вас уже есть некоторые из самых важных навыков. Берите остальных по одному и старайтесь не перегружаться.
источник
Bear Bibeault
Хорошо известный разработчик и авторы настаивают, чтобы изучать JSP и сервлеты, прежде чем изучать ЛЮБОЙ фреймворк. Хотите показать, почему это может или не может быть применимо сегодня? Вот его пост - coderanch.com/t/521300/JSP/java/JSP-servlets-strutsЯ бы посоветовал узнать об основных JSP и сервлетах, так как это поможет вам понять концепции, упрощенные в Spring. Поскольку у вас есть опыт работы с CGI на основе PHP, большинство JSP / Servlets будут просто разными способами делать то, что вам знакомо, поэтому оно должно пройти довольно быстро. Самое сложное, что вы можете найти, это подобрать уникальные идиомы в мире Java.
Что касается Hibernate, я согласен с MebAlone и скажу, что вы должны изучить его, если вам нужно, но если он уже настроен, вы можете сделать 90% того, что вам нужно, просто набросившись на то, что сделали другие.
источник
Звучит так, будто вы хотите изучить веб-разработку на стороне сервера с использованием Java. Есть несколько рамок. Spring MVC на самом деле является самым популярным, он зрелый, очень полнофункциональный и хороший фреймворк. Spring MVC и другие веб-фреймворки Java абстрагируют API сервлетов Java от программиста - так что технически вам не нужно это знать. Но я бы посоветовал изучить основы - особенно ключевые классы. День учебы должен привести вас туда.
Что касается JSP, если вы знаете PHP, вы уже понимаете основы. JSP - это java-версия сценариев на стороне сервера.
Hibernate - это реализация (самая популярная) JPA, которая представляет собой Java-спецификацию для сохранения объектов в RDBMS. С ростом популярности NOSQL db (Hadoop, Mongo и т. Д.), Hibernate стал гораздо менее «обязательным знакомым», чем это было даже 18 месяцев назад. Лично я изучаю технологии хранения данных по мере необходимости, потому что их много, и вы теряете то, что не используете.
источник
Краткий ответ: нет, вам не нужно изучать сервлеты и JSP как предварительное условие для Spring MVC и многих других веб-фреймворков Java.
Давайте сначала выведем Hibernate из картинки. Это структура уровня персистентности, и она не имеет ничего общего с сервлетами и JSP.
Servlet API - это самый низкий уровень почти для всех веб-фреймворков Java. Даже JSP компилируются в сервлеты.
Spring MVC - это слой поверх Servlet API с множеством полезных расширений и интеграцией со Spring Core. Вы можете использовать JSP как механизм рендеринга для Spring MVC. Учебное пособие по Spring MVC поможет вам с самого начала создавать веб-приложения. По мере продвижения вы узнаете о JSP и будете хорошо подготовлены к пониманию Servlet API.
источник
Bear Bibeault
Хорошо известный разработчик и авторы настаивают, чтобы изучать JSP и сервлеты, прежде чем изучать ЛЮБОЙ фреймворк. Хотите показать, почему это может или не может быть применимо сегодня? Вот его пост - coderanch.com/t/521300/JSP/java/JSP-servlets-strutsкажется, что вы застряли на проблеме, с которой я столкнулся недавно. Моей целью было изучить разработку на стороне сервера с помощью Java. Итак, я начал с сервлетов, понял их работу и написал несколько простых программ для запуска на сервере TomCat. TomCat, является обязательным условием. Вы определенно должны быть знакомы с TomCat, если хотите продолжить. Что касается Struts2 или Spring, Struts2 и Spring - это фреймворки, построенные на сервлетах, что делает необходимым глубокое понимание сервлетов, если вы хотите быть сильными в основах. Я начал с обучающих программ по Java Brains. Для начинающих, эти учебники удивительны. Некоторые работы Якоба Дженкова в его блоге тоже удивительны. Struts2 и Spring упрощаются, когда вы знаете сервлеты. Что касается гибернации, я предлагаю вам начать с знакомства с JDBC. Идем пошагово, сервлеты, распорки, JDBC, Spring, Hibernate. Надеюсь, мой ответ поможет :).
источник