Я использую Java в основном для программирования с графическим интерфейсом пользователя и PHP для веб-программирования, но мне очень не нравится отсутствие статически типизированного языка. В своем следующем проекте я хотел бы использовать Java вместо PHP. В чем разница между JSP и сервлетами?
Сервлет JSP и веб-программирование
Ответы (7)
JSP в основном позволяет писать код Java на основе HTML, внешне напоминающего PHP или ASP. Однако результат просто компилируется в сервлет.
По сути, JSP и сервлеты одинаковы, оба компилируются в сервлеты и оба выполняются как код Java. Разница между ними заключается в создании и использовании. Вы пишете сервлеты как код Java, т.е. вы пишете класс Java, производный от HttpServlet, и переопределяете соответствующие методы. С другой стороны, JSP создаются с использованием языка на основе шаблонов, это очень похоже на HTML с добавленными фрагментами кода, аналогично многим другим языкам на основе шаблонов.
Если вы создаете веб-приложение на Java, считается (очень) хорошей практикой использовать архитектуру стиля MVC с сервлетами в качестве контроллера и JSP, обеспечивающими представление (и POJO в качестве модели).
Я бы очень рекомендовал прочитать несколько первых разделов Руководства по Java EE 5 < / а>. Он действительно хорошо объясняет различные технологии Java.
Короче говоря, сервлеты - это абстракция HTTP-сервера, позволяющая реализовать логику на основе входящего HTTP-запроса.
JSP больше ориентирован на просмотр, позволяя смешивать код с вашим html-представлением, и вы найдете его похожим на PHP или классический ASP.
Вы можете использовать сервлеты без JSP, и вы можете использовать JSP без сервлетов (вроде бы, они все еще используются в фоновом режиме), но чаще всего вы захотите использовать хороший контроллер MVC с сервлетом, выполняющим роль контроллера, и JSP заполнение роли просмотра.
Если вы используете mvc, JSP будет представлением, а сервлет будет контроллер. Хотя JSP может содержать код Java, чем меньше, тем лучше.
Чтобы сравнить его с миром PHP, Zend Framework, JSP == .phtml и serlet == .php.
- Сервлеты - это классы, которые можно использовать для обработки любых запросов, но в основном HTTP-запросов. Вы пишете сервлеты, создавая классы, расширяющие http://java.sun.com/products/servlet/2.1/api/javax.servlet.http.HttpServlet.html
- JSP - это более новая технология, чем сервлеты. Он используется для объединения кода HTML с кодом Java. В конце концов, страница JSP используется для генерации (автоматически) HttpServlet.
Обычно люди пишут часть бизнес-логики веб-сайта на сервлетах, а затем пересылают управление на страницу JSP (аналогично тому, что достигается с помощью MVC).
Но в настоящее время многие люди будут использовать такие фреймворки, как JSF или Spring, поверх технологии Servlet + JSP. Так что вы можете также взглянуть на один из этих фреймворков.
Сервлеты находятся на java и позволяют запрограммировать HTTP-ответы с использованием строк Java. Они наиболее полезны для вычислительной работы.
Jsps - это в основном html с небольшими фрагментами кода Java, это больше похоже на PHP и более полезно для веб-сайтов.
P.s. Взгляните на движок приложений Google, он отлично подходит для размещения базовых приложений Java.
JSP следует модели MVC. Основное различие между jsp и php во время выполнения. 1. Когда jsp-страница в первый раз преобразуется как класс сервлета, а затем каждый раз вызывается класс сервлета, это делает jsp быстрее, чем php. 2. вы можете использовать bean-компонент (простые классы java) на странице jsp для реализации бизнес-логики и оформить для этого на страницах jsp, как простую статическую страницу html. Есть больше возможностей с jsp ....