Сервлеты, JSP, Java? - PullRequest
       30

Сервлеты, JSP, Java?

2 голосов
/ 02 августа 2010

Я немного озадачен некоторыми терминами, я знаю Java для написания некоторых "обычных исполняемых" программ. Но я обнаружил, что вы можете делать сервлеты с Java, а затем услышал о JSP.

Я не уверен насчет различия сервлетов и JSP .. Я не понимаю, я думаю, что это похоже на PHP или что-то в этом роде.

Есть ли у вас какие-либо организованные ссылки (или ум, чтобы объяснить переход "обычной" Java к этим технологиям) по этому поводу?

Спасибо.

Ответы [ 6 ]

2 голосов
/ 02 августа 2010

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

JSP - страницы сервера Java. Это HTML-страницы и своего рода препроцессор. Среди обычных тегов HTML препроцессор оценивает своего рода язык шаблонов / тегов. По сути, вы можете написать HTML-страницу, но включить код Java. «Препроцессор» переводит ваш JSP в сервлет; HTML-теги и их содержимое становятся строками в коде сервлета. Так как вы упомянули PHP, да, JSP выглядит примерно как (некоторый) код PHP, в который встроено HTML.

JSP - это очень простой способ создания веб-страниц с активным содержимым Java, примерно сравнимый с Microsoft ASP. Тем не менее, большинство Java-сообщества согласны с тем, что способ, которым JSP смешивает разметку HTML и код, является мерзостью, которая приводит к очень грязным приложениям, а также не допускает специализации между веб-дизайнерами и программистами. Это та же легкомысленность, для которой «настоящие» программисты любят использовать PHP.

Таким образом, JSP в основном отказались от благодати и были вытеснены другими решениями для смешивания веб-контента и кода. Самыми заметными / успешными в отрасли были тем временем «отраслевые стандарты» Struts и Java Server Faces . Однако многие люди считают, что они тоже ужасно сложны, и поэтому существует множество различных сред веб-приложений для Java .

Любое упомянутое мной ключевое слово приведет вас к другим ссылкам на информацию. Исчерпывающе полную информацию можно найти в документации Oracle по J2EE , но я не могу рекомендовать прочитать это как введение. Это пугающе тяжелый, подробный и далеко идущий. Взгляните вместо этого на некоторые современные сторонние, предпочтительнее фреймворки с открытым исходным кодом, которые я считаю гораздо менее болезненными. Я лично наслаждаюсь Калиткой , но это одна из многих, и я знаю слишком мало альтернатив, чтобы выдать действительную рекомендацию.

1 голос
/ 02 августа 2010

Сервлеты и JSP, как и PHP, используются для создания динамических HTML-страниц, но с использованием языка Java. В мире Java сначала у нас были сервлеты. Сервлет - это класс Java, который реализует определенные интерфейсы. Затем, например, давайте представим, что вы хотите, чтобы ваш сервлет выводил HTML-страницу, например:

<html>
<head></head>
<body>current time</body>
</html>

Где текущее время будет динамически генерироваться и показывать текущее время. Для этого вам нужно написать несколько out.println операторов:

out.println("<html>");
out.println("<head></head>");
out.println("<body>" + new Date() + "</body>");
out.println("</html>");

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

<html>
<head></head>
<body><%= new Date() %></body>
</html>

Это гораздо менее многословно, гораздо более читабельно и гораздо более знакомо авторам HTML.

Теперь для того, чтобы сервировать JSP и сервлеты, так же, как вы запускаете PHP внутри Apache + Mod PHP, вам нужен специальный тип сервера, называемый контейнером сервлетов. Tomcat: популярный контейнер сервлетов с открытым исходным кодом: tomcat.apache.org

Дайте мне знать, если у вас есть еще вопросы.

1 голос
/ 02 августа 2010

Сервлеты - это прослушиватели HTTP, которые работают в ядре приложений сервлетов / JSP, таких как Tomcat, Jetty и т.д.

JSP - это шаблоны, которые компилируются в сервлеты. Они позволяют вам писать HTML-генерирующие сервлеты в теговой нотации шаблона таким образом, чтобы было возможно динамическое поведение.

0 голосов
/ 02 августа 2010

«Сервлет API» - это набор Java-интерфейсов («контрактов»), который позволяет вам писать небольшие фрагменты кода, которые обрабатывают один веб-запрос из браузера и генерируют ответ на него. Обычно это веб-страница, но также может быть сгенерированное изображение или звуковой файл.

По сути, вам, как программисту сервлетов, не нужно заботиться о чем-то большем, чем просто «что я должен генерировать в ответ на этот запрос». Окружающая среда обрабатывает все остальное, например прослушивание портов для запросов, регистрацию информации о запросах, сохранение активных сеансов, чтобы пользователи не замечали перезагрузку сервера и т. Д.

В таком сервлете ответ генерируется в коде, а

out.println("<li>" + name + ": " + address +"</li>");

быстро становится утомительным. Поэтому был изобретен JSP, позволяющий вам сказать

<li><%= name %>: <%= address%></li>

вместо этого на страницах, в основном HTML, но с небольшим количеством кода в нем.

Опыт показывает, что скелет HTML и представление данных Java должны быть разделены, поскольку смешивание HTML и Java в одном и том же файле затрудняет поддержание.

0 голосов
/ 02 августа 2010

В прежние времена существовали апплеты, которые были приложениями, которые запускались внутри браузера клиента, и обратная сторона - это сервлеты, которые являются приложениями, работающими на веб-сервере на основе Java (контейнер).1002 * Сервлет имеет доступ к информации для передачи информации в браузер и для получения информации от таких ресурсов, как файлы cookie и заголовки.

Но многие люди знакомы с ASP и PHP, и написание сервлетов может бытьсложнее, поэтому, чтобы позволить инфраструктурам абстрагироваться и сделать веб-разработку проще, у нас есть JSP (Java Server Pages).Они будут скомпилированы в сервлеты, это просто более простой способ создания веб-страниц.

Это упрощенное объяснение, поэтому я пропустил некоторые части, такие как рассказ о том, как будут использоваться шаблоны, но выможно получить лучшее представление о жизненном цикле JSP здесь: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro4.html.

Существуют ограничения на страницы JSP, которые заставляют вас время от времени использовать сервлеты, например, страницы JSP не могут возвращать двоичные данные, поэтомуВы хотите отправить обратно изображение или PDF, тогда сервлет - ваш единственный выбор.

0 голосов
/ 02 августа 2010

Проще говоря, JSP - это способ создания сервлета путем встраивания Java в шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...