Сервлет отвечает на запрос http (normaly), что JSP преобразуется в сервера. EJB - это тотально другое, EJB определяет вашу бизнес-модель. Кажется, вы смущены тем, что такое удаленный доступ, это означает, что вы можете развернуть EJB на другом сервере, работающем в другой JVM, и что ваши сервлеты могут получить к нему доступ. С другой стороны вы можете иметь локальные EJB, которые работают на одном сервере, остальная часть вашего webapp и в той же JVM, что и ваши сервлеты и jsps. В зависимости от того, является ли ваш EJB локальным или удаленным, реализация отличается небольшими аспектами (в удаленных EJB вам необходимо создать интерфейс и другие вещи, я не буду вводить подробностей, я добавлю ссылку об этом).
Если вы хотите понять, в чем разница между сервлетами, jsps и ebjs, вы должны понимать, что такое MVC (Model View Controller). Обычно контроллер определяется сервлетами, которые получают HTTP-запрос от клиента и делегируют действия, которые они выполняют в EJB и JSP. Вид определен JSP (я полагаю, вы уже понимаете, что это такое). И EJB - это Модель, они определяют вашу бизнес-модель, они не обслуживают HTTP-запросы, они просто выполняют простые действия над вашей «моделью», такие как update/select/insert data в вашей базе данных и многое другое.
Смотреть больше: https://docs.oracle.com/javaee/7/tutorial/doc/ejb-intro.htm#GIJSZ для EJB
Также я рекомендую вам следующие две книги:
Head First сервлеты и JSP http://shop.oreilly.com/product/9780596005405.do
Head First EJB http://shop.oreilly.com/product/9780596005719.do
спасибо за подробный объяснение, но оно по-прежнему не отвечает на мой вопрос, и я знаю, что такое удаленный доступ, но я просто хочу знать, почему сказано, что EJB можно получить удаленно и не обслуживать let/jsp's –
Вы уверены, что они не могут? http://stackoverflow.com/questions/3164822/calling-a-remote-java-servlet –
Я на самом деле нет. Я не знаю, почему люди писали на многих форумах, к которым сервлет не может получить доступ удаленно, и EJB может –