2014-11-21 2 views
0

Я пытался понять разницу между EJB и Servlet (я знаю, что оба концептуально отличаются, EJB - это часть кода Java с некоторыми правилами, а Servlet - это то, что принимает и обрабатывает HTTP-запросы) Но я обнаружил, что одна из отличий между этими двумя:Почему EJB удаленно и Servlet не

Ejbs позволяет удаленный доступ. Servlet/jsp не разрешает удаленный доступ

Я не понимаю вышеперечисленную разницу. Почему EJB может быть удаленно доступным и Servlet нет.

ответ

0

Сервлет отвечает на запрос 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

+0

спасибо за подробный объяснение, но оно по-прежнему не отвечает на мой вопрос, и я знаю, что такое удаленный доступ, но я просто хочу знать, почему сказано, что EJB можно получить удаленно и не обслуживать let/jsp's –

+0

Вы уверены, что они не могут? http://stackoverflow.com/questions/3164822/calling-a-remote-java-servlet –

+0

Я на самом деле нет. Я не знаю, почему люди писали на многих форумах, к которым сервлет не может получить доступ удаленно, и EJB может –

Смежные вопросы