Чи потрібно мені знати сервлетів та JSP, щоб вивчити весну чи сплячку чи будь-які інші веб-рамки Java? [зачинено]


17

Я дуже багато людей запитував, з чого почати вивчати веб-розробку Java, я вже знаю основні Java (Threading, Generics, Collections, невеликий досвід роботи з (JDBC)), але я не знаю JSP і сервлетів. Я зробив свою неабияку частку в розробці декількох веб-додатків, що використовують PHP для серверної та HTML, CSS, Javascript, HTML5 для клієнтської.

Більшість людей, яких я попросив, сказали мені стрибнути прямо в сплячку, а деякі мені сказали, що мені не потрібно вчити сервлетів та jsps, і я повинен негайно вивчити рамки весни. Це правда? чи не потрібно мені вчитися сервлетам та JSP, щоб дізнатися сплячку чи весну?

Усі їх відповіді збентежили мене, і тепер я повністю втрачаю те, що вчитися чи вчитися. Я відчуваю, що якби я пропустив вивчення JSP та сервлетів, я пропустив би багато важливих понять, які, безумовно, допоможуть мені в майбутньому.

Тож питання, чи потрібно мати фундамент / знати сервлетів та JSP для вивчення весни чи сплячки або будь-яких інших веб-рамок Java.?


3
Зауважте, що сплячий режим - це лише рівень абстрагування бази даних, нічого більше, і його можна використовувати для підключення джерела даних до будь-якого додатку Java, а не лише до веб-програми.
Ед Грібель

1
Знаючи про сервлетів та JSP, це не зашкодить, погляньте на "Головний перший - сервлети та JSP". Легке для розуміння прочитане, але також охоплює багато.
Джейді

@Jaydee В даний час я очолюю Сервлетів і JSP за серветками Марті Хол + Мурача та JSP.
KyelJmD

Я не думаю, що на це питання відповіли адекватно. Bear Bibeault, відомий розробник та автори наполягають на тому, щоб вивчити JSP та Servlets перед тим, як вивчити будь-які рамки. Комусь хочеться показати, чому це може бути чи не може застосовуватися сьогодні? Ось його посада - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Борат Сагдієв

Гаразд, я отримав кілька відповідей Bear Bibeault. Перегляньте ці два посилання - coderanch.com/t/633527/Spring/… та coderanch.com/t/633526/JSP/java/…
Борат Сагдієв

Відповіді:


17

Якщо ви добре розумієте HTML, CSS та JavaScript, у вас багато людей, які в кінцевому підсумку займаються веб-розробкою. Концепції JSP дуже схожі на PHP. Примхи різні. Сервлет - це назва фрагмента коду Java, який обслуговує запит. Це справді. Весь оригінальний фреймворк Струтса був єдиним сервлетом.

Я б додав Tomcat або Jetty до вашого списку технологій, які потрібно вивчити. Tomcat - оригінальна реалізація контейнера Java Servlet Container, яка також є повнофункціональним і досить популярним веб-сервером. GlassFish побудований поверх нього. Я використовував Jetty замість Tomcat у своїх нових проектах, тому що це простіше, гнучкіше та швидше. Jetty був розроблений для створення веб-служб на відміну від веб-додатків. Але веб-додаток - це лише веб-сервіс, який обслуговує HTML у відповідь на необмежені запити HTTP, тому якщо ви розумієте HTTP (з якого ви можете дізнатися важливі частини за кілька годин до дня), працювати з цим дуже просто.

Ви можете зробити невеликий веб-сайт, використовуючи Tomcat та JSP ( навчальний посібник тут або JSF), знаючи лише те, що ви знаєте, і витративши кілька годин на підручники. Таким чином ви можете почати там, де вам зручно, перш ніж розтягуватися. Потім зробіть javax.servlet.http.HttpServlet, що пише "<html> <head> <title> Привіт </title> </head> <body> <h1> Hello World </h1> </body> </ html > "до об'єкта відповіді, перерахуйте його у своєму Tomcat web.xml та відправте HTTP-запит із веб-браузера. Це не ракетна наука. Усі веб-рамки Java є варіантами цих двох основних видів діяльності.

Якщо ви йдете маршрутом Jetty, він ще менш структурований. Перевірте цей приклад Hello Jetty .

Якщо ви просто збираєтеся робити блог або стандартний сайт електронної комерції, я б почав з SquareSpace або Wordpress чи ще чогось. Ви отримуєте стільки з полиці, що вже немає жодного способу виправдати спеціальне кодування.

Сила Java для веб-додатків - її надійність, ремонтопридатність та продуктивність. PHP або Ruby / Rails простіше, але Java буде масштабувати стільки, скільки ви хочете. Мене не охоплює жодна з веб-рамок Java. Якщо у вас є команда людей, які працюють над великим веб-додатком, або вам потрібно використовувати сплячку, тоді така структура, як Весна, дійсно сяє. Весна - найпопулярніша. Коли ви знайомите з сервлетами та JSP / JSF, то дізнайтеся, як Весна пов’язує їх разом із моделлю даних.

Якщо ви створюєте блог або систему управління вмістом, можливо, ви можете піти з бази даних NoSQL. Але я заперечую, що бази даних NoSQL - це в основному лише кешуючий шар у файловій системі, а не заміна реляційних баз даних. Я думаю, що рідко проект, який добре підходить для бази даних NoSQL, буде доречним розробляти в Java.

У речах, які все ще потребують користувацького високоефективного коду (на Java, PHP і будь-якому іншому), ймовірно, буде створена реляційна / SQL база даних. Я рекомендую вам спочатку ознайомитись із SQL та JDBC (Java Database Connectivity). Після того, як вам сподобається світ об'єктів Java та світ реляційних баз даних та SQL, ви можете вивчити Ebean / JPA (Java Persistent API) / ORM (Object to Relational Mapping), який з'єднує об'єктний світ із реляційним світом.

ОРМ складні і дивні. Більшість зрештою варта боротьби. Ebean - це найпростіший, кого я знаю. Мені це зручніше після 8 місяців, ніж мені в сплячку після 12 років. Я знаю дуже багато людей, які використовують Spring with Hibernate, і вони, схоже, не мають жодних проблем, або навіть особливо знають, що таке або робить Hibernate, тому я б сказав, якщо ви збираєтесь використовувати Hibernate, зробіть це через Весну. Можливо, тому, що я працював з ним довше, мені вдалося повністю вимкнути сплячку з парою хеш-карт для тестування, що є приголомшливим (огляд доступний на запит).

Ви вже маєте кілька найважливіших навичок. Візьміть інших по черзі і намагайтеся не перевантажуватись.


чи є у вас посилання чи підручник, де я можу почати вивчати ці технології? чи, можливо, гарна пропозиція щодо книги. Більшість застосувань, які я зробив, використовують RDBMS, від SQL Server до простого MySQl.
KyelJmD

Я прибрав свою відповідь і додав посилання за потребою. Зимовий режим / JPA та різні веб-рамки потребують часу, щоб вивчити та опанувати. Більшість інших технологій, ви вже достатньо знаєте про те, що ви повинні мати можливість працювати протягом кількох годин або на день. Я не знаю весни, але перегляньте документацію на їхньому веб-сайті або отримайте високо оцінену книгу на Amazon.
GlenPeterson

Я не бачу, як це відповідає на питання. Bear Bibeault, відомий розробник та автори наполягають на тому, щоб вивчити JSP та Servlets перед тим, як вивчити будь-які рамки. Потрібно показати, чому це може бути чи не може застосовуватися сьогодні? Ось його посада - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Борат Сагдієв

@GlenPeterson, "Весь оригінальний фреймворк Струтса був єдиним сервлетом". значення? Хіба це не зробить кожен http дзвінок повільним?
Pacerier

@Pacerier Ми використовували завантаження Struts 1 в Tomcat як сервлет. Сервлет контролера Struts надсилатиме різні запити в різні потоки так само, як і веб-сервер, саме на рівні сервлетів замість рівня контейнера. Я думаю, накладні витрати були мінімальними. Найбільш повільними є дзвінки в базу даних. Другий повільний, складання HTML і повернення його клієнту. У той час було популярно використовувати окремий сервер для статичного вмісту для швидкості, тому все вийшло.
GlenPeterson

4

Я б запропонував ознайомитися з основними JSP та сервлетами, оскільки це допоможе вам зрозуміти поняття, спрощені навесні. Оскільки у вас є досвід роботи з CGI на основі PHP, більшість JSP / Servlets будуть просто різними способами робити знайомі вам речі, тому це має пройти досить швидко. Найважче, що вам може здатися, - це підбір унікальних ідіом у світі java.

Що стосується сплячого режиму, я погоджуся з MebAlone і скажу, що вивчіть це, якщо вам потрібно, але якщо він уже налаштований, ви можете зробити 90% від того, що вам потрібно, просто поглибивши те, що зробили інші.


2

Це здається, що ви хочете навчитися розробці веб-сторінок на сервері за допомогою Java. Існує ряд каркасів. Весна MVC насправді є найпопулярнішою, вона зріла, дуже повноцінна і хороша рамка, яку потрібно знати. Spring MVC та інші веб-рамки Java абстрагують API сервлета Java від програміста - так що технічно вам це не потрібно знати. Але я б запропонував вивчити основи - особливо ключові заняття. День навчання повинен вас туди перевезти.

Що стосується JSP, якщо ви знаєте PHP, ви вже розумієте основи. JSP - версія Java для сценаріїв на стороні сервера.

Hibernate - це реалізація (найпопулярніша) JPA, яка є специфікацією Java для збереження об'єктів до RDBMS. Завдяки вибуху популярності NOSQL DB (Hadoop, Mongo та ін.), Hibernate набагато менше "повинен знати", ніж це було навіть 18 місяців тому. Особисто я вивчаю технології зберігання на основі необхідних знань, тому що їх дуже багато, і ви втрачаєте те, що не використовуєте.


Яку книгу ви могли б запропонувати для Spring MVC? у чому різниця пари Весна та Весна MVC?
KyelJmD

Spring - це стек технологій java, який включає широкий спектр проектів. Spring MVC - це серверна основа веб-сторінок. Інтернет-документація та зразки додатків Spring - найкращий спосіб дізнатися Spring MVC.
MebAlone

2

Коротка відповідь: ні, вам не потрібно вивчати сервлети та JSP як необхідну умову для Spring MVC та багатьох інших веб-рамок Java.

Давайте спочатку вийдемо зі сплячки з картини. Це структура стійкого шару, і вона не має нічого спільного з сервлетами та JSP.

API сервлетів - найнижчий рівень майже для всіх веб-рамок Java. Навіть JSP складаються в сервлети.

Spring MVC - це шар поверх API Servlet з великою кількістю корисних розширень та інтеграції з Spring Core. Ви можете використовувати JSP як механізм візуалізації для Spring MVC. Весняний підручник MVC проведе вас із самого початку, щоб створити веб-додатки. Ідучи далі, ви дізнаєтесь про JSP, і зможете добре розуміти API сервлетів.


яку книгу чи відео-посібник ви б запропонували вивчити весняний MVC?
KyelJmD


1
@YuriyZubarev - Я не бачу, як це відповідає на питання. Bear Bibeault, відомий розробник та автори наполягають на тому, щоб вивчити JSP та Servlets перед тим, як вивчити будь-які рамки. Потрібно показати, чому це може бути чи не може застосовуватися сьогодні? Ось його посада - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Борат Сагдієв

-1

здається, ви застрягли в питанні, з яким я стикався недавно. Моєю метою було навчитися розробці серверних серверів за допомогою Java. Отже, я почав з сервлетів, зрозумів їх роботу і написав кілька простих програм для запуску на сервері TomCat. TomCat, є необхідною умовою. Ви обов'язково повинні бути знайомі з TomCat, якщо хочете продовжити далі. Що стосується struts2 або Spring, struts2 та spring - це рамки, побудовані на сервлетах, що робить глибоке розуміння сервлетів важливим, якщо ви хочете бути сильними в основі. Я почав з навчальних посібників Java Brains. Для початківця ці підручники дивовижні. Деякі роботи Якоба Дженкова в його блозі теж справді вражають. Struts2 та Spring стають простішими, коли знаєш сервлетів. Що стосується сплячого режиму, пропоную вам почати з того, щоб бути справді знайомим з JDBC. Ідіть покроково, серветки, підкоси, JDBC, Spring, Hibernate. Сподіваюся, моя відповідь допомагає :).


цю публікацію досить важко читати (стіна тексту). Ви б не хотіли відредагувати його в кращій формі?
гнат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.