top 30 jsf interview questions
Цей підручник містить запитання та відповіді на інтерв’ю на Java Server Faces або JSF із поясненнями, які допоможуть вам підготуватися до співбесіди:
Розробнику Java важливо мати робочі знання в одному або декількох популярних фреймворках Java, таких як Spring, Hibernate, Struts та Java Server Faces (JSF).
JSF - це одна з платформ Java, яка швидко допомагає розробляти компоненти веб-інтерфейсу користувача.
JSP була технологією Java, яка використовувала Java API, неявні об'єкти та власні теги для розробки динамічного веб-вмісту, тоді як використовувала Java Server Faces (JSF), структуру веб-додатків на основі Java для розробки компонентів веб-інтерфейсу користувача.
JSF керував бінами, дозволами граней, анотаціями та бібліотеками утиліт, таких як основні грані та грані Omni або крижані грані, щоб розробляти компоненти на основі шаблону на стороні сервера.
Що ви дізнаєтесь:
Обличчя сервера Java
Технологія Java Server Faces пропонує API для створення компонентів користувацького інтерфейсу багаторазового використання на веб-сторінках. Він з'єднує компоненти з джерелом даних програми та генерованими клієнтом подіями з обробниками подій на стороні сервера, підтримує стан інтерфейсу користувача в декількох запитах сервера, а також реалізує власні компоненти.
JSF забезпечує базову бібліотеку, стандартні елементи введення HTML як базові компоненти інтерфейсу, на основі різних пристроїв та типу клієнта, скажімо, браузер HTML, WAP або бездротові пристрої, забезпечує можливість візуалізації компонентів інтерфейсу.
Найчастіші запитання щодо інтерв'ю JSF
Q # 1) Що таке Java Server Faces (JSF)?
Відповідь: Це фреймворк Java, заснований на дизайні MVC, який має багаті бібліотеки API та тегів, які пропонують створення компонентів користувацького інтерфейсу на стороні сервера для веб-розробки.
JSF має бібліотеку тегів, API, Facelets та компоненти інтерфейсу користувача та керовані компоненти для створення веб-додатків.
Q # 2) Які функції Java Server Faces пропонують у веб-розробці?
Відповідь: Особливості перелічені нижче:
- Фреймворк Java, побудований через API сервлетів
- Компоненти інтерфейсу зберігаються на сервері
- Модель програмування на основі подій, яка обробляється на сервері
- Підтримує кілька клієнтських пристроїв
- Простота впровадження сторонніх компонентів
- Розширювана архітектура
- Широка підтримка інструментів від Borland, Exadel, Sun, Oracle, IBM, BEA тощо.
- Підхід до швидкої розробки додатків (RAD)
- Підтримує інтернаціоналізацію міток та тексту інтерфейсу користувача
Особливості Java Server Faces:
Q # 3) Поясніть життєвий цикл JSF.
Відповідь: Життєвий цикл містить 6 фаз, як пояснюється нижче:
# 1) Відновити вигляд: Життєвий цикл починається з фази відновлення виду. Коли на веб-сторінці натискається посилання або кнопка, до JSF надсилається запит із операціями, переліченими нижче:
- Вигляд побудований JSF
- З’єднує обробники подій та валідатори з компонентами інтерфейсу користувача
- Зберігає цей вигляд у екземплярі FacesContext
- Надає всю інформацію FacesContext для обробки запиту
# 2) Запит на застосування: Тут створюється кожен компонент із дерева компонентів. Використовуйте метод декодування, який фіксує та зберігає нові значення з параметрів запиту. У разі будь-якої помилки під час перетворення, воно генерує повідомлення про помилку та перелічує його на FacesContext. Він буде відображати повідомлення про перевірку або помилки на етапі відповіді на візуалізацію. JSF переходить до фази відтворення, коли слухачі подій методу декодування викликають метод renderResponse.
# 3) Валідація процесу: На цьому етапі JSF обробляє валідатори дерева компонентів, перевіряє правила атрибутів для перевірки та порівнює їх із збереженим локальним значенням компонента. У разі недійсного локального значення JSF додає повідомлення про помилку до екземпляра FacesContext, відображаючи ту саму сторінку з повідомленням про помилку та життєвим циклом JSF, що рухається далі до фази відповіді на візуалізацію.
# 4) Оновлення значення моделі: Після перевірки JSF дійсних даних він встановлює відповідні властивості об'єкта на стороні сервера до локальних значень компонента та оновлює властивості компонента, що відповідають атрибуту value вхідного компонента. Коли renderResponse з поточного екземпляра FacesContext викликається методами updateModels, JSF переходить до фази відповіді на візуалізацію.
# 5) Виклик програми: Події на рівні додатків, такі як надсилання форми або пересилання на іншу сторінку, обробляються Java Server Faces на цьому етапі.
# 6) Візуалізація відповіді: Якщо програма має сторінки JSP, JSF просить сервер додатків відтворити сторінку, тим самим додаючи компоненти на сторінці до дерева компонентів. В іншому випадку у вже побудоване дерево компонентів не потрібно додавати будь-які компоненти; Контейнер JSP переміщує теги та відображає компоненти. Стан відповіді зберігається після надання вмісту перегляду, що робить послідовні запити доступ до стану та його доступності для відновлення фази перегляду.
Q # 4) Яке значення керованих компонентів у Java Server Faces?
Відповідь: Керовані компоненти - це компоненти Java, що містять методи отримання та встановлення, і в них розроблена бізнес-логіка. За бажанням він може мати підложку. Вони виступають в якості моделі для компонентів інтерфейсу користувача в рамках MVC.
Для JSF 1.2 їх потрібно зареєструвати у файлі конфігурації JSF, faces-config.xml, тоді як, починаючи з JSF 2.0, анотації використовуються для реєстрації керованих компонентів.
Q # 5) Які сфери застосування керованих зерен?
Відповідь: Керовані компоненти - це клас Java, який складається з набору методів та властивостей getter / setter. Він виступає в якості моделі для JSF і пропонує такі функції, як
- Перевірка даних компонентів
- Керуйте виконанням події компонента
- Обробка, щоб вирішити, якою сторінковою програмою рухатиметься далі
- JSF використовує керовані компоненти або шляхом налаштування їх у файл XML, або за допомогою анотацій.
Для класу керованих бобів використовуються наступні області застосування:
- Застосування
- Сесія
- Переглянути
- Запит
- Жоден
- На замовлення
Q # 6) Що таке Facelet?
Відповідь: Фасети - це полегшена мова декларування сторінок, яка використовує шаблони стилів HTML для побудови дерева компонентів для побудови подань обличчя сервера Java.
Деякі функції Facelets перелічені нижче:
- Він використовує XHTML для створення веб-сторінок.
- Крім бібліотек тегів JSF та JSTL, він пропонує бібліотеки тегів Facelets.
- Підтримка мови виразів, компонування та шаблонування сторінок.
Q # 7) Поясніть переваги використання Facelet.
Відповідь: Переваги такі:
- Швидкий час компіляції
- Високопродуктивний візуалізація
- Розширює свою функціональність до компонентів та інших об’єктів на стороні сервера за допомогою налаштування
- Підтримка повторного використання коду за допомогою складених компонентів та шаблонів
- Підтвердження EL під час компіляції
Q # 8) Перелік тегів Facelet, що використовуються в Java Server Face.
Відповідь: Деякі теги Facelet, що використовуються в JSF, перелічені нижче:
- ui: компонент визначає створений компонент і додає до дерева компонентів.
- ui: склад визначає склад сторінки, додатково використовує шаблони та ігнорує вміст зовні.
- ui: налагодження визначає створений компонент налагодження та додає до дерева компонентів.
- ui: прикрасити подібний до тегу компонента, розгляньте вміст поза цим тегом.
- ui: визначити використовується для визначення вмісту, вставленого на сторінку шаблоном.
- ui: фрагмент схожий на компонент і прикрашає тег. Він розглядає вміст поза цим тегом.
- ui: включити повторне використання та інкапсулювання вмісту декількох сторінок.
- ui: вставити як ім'я вставляє вміст у шаблон.
- ui: зупинись передавати параметри до включеного файлу.
- ui: повторити альтернатива для тегів циклу, таких як c: forEach або c: dataTable.
- ui: видалити використовується для видалення вмісту зі сторінки.
Q # 9) Перелік типів навігації сторінками, які підтримує JSF.
Відповідь: JSF підтримує такі типи навігації сторінками:
- Умовна навігація
- Навігація вперед проти перенаправлення
- Неявна навігація
- Навігація через керований компонент
- Навігація за допомогою переспрямованої навігації
Q # 10) Опишіть різні теги текстових полів, запропоновані JSF.
Відповідь: Різні теги текстових полів описані нижче:
- вставляє текстове поле поруч із полем мітки.
- використовується як контейнер для введення численних символів.
- - це тип текстового поля, який використовується для поля пароля, щоб введені дані не розкривалися.
Q # 11) Опишіть вираз значення та вираз методу.
різниця між прямим порту та тригером порту
Відповідь: Вираз значення отримує значення і встановлює значення. Вони далі поділяються на вираз rvalue та вираз lvalue. rvalue може читати лише дані, тоді як lvalue може читати, а також записувати дані.
Відкритий метод компонента викликається виразом Method, який повертає результат, необхідний для перевірки компонента даних та обробки подій.
Q # 12) Які типи перевірок доступні в JSF?
Відповідь: У JSF існує два типи перевірок, а саме: Декларативна та Імперативна.
- Декларативний перевірки викликаються за допомогою стандартних валідаторів JSF або валідаторів Bean.
- Імператив перевірки - це складні заявлені користувачем валідатори, які замінюють стандартну перевірку, оскільки стандартні повідомлення перевірки не є адекватними у всіх випадках.
Q # 13) Перелік виразів, які підтримує мова виразів JSF.
Відповідь: Підтримані вирази наведені нижче:
- Вираз безпосереднього значення
- Вираз відкладеного значення
- Вираз цінності
- Вираз методу
Q # 14) Опишіть різні типи подій JSF.
Відповідь: В основному існує три типи подій JSF, а саме: події дії, події зміни вартості та події фази.
- Події дій генеруються для таких компонентів інтерфейсу, як командна кнопка або командне гіперпосилання.
- Події зміни цінності текстове поле посилання, поле списку перемикачів. Будь-яка зміна значення в цих компонентах інтерфейсу викликає подію зміни значення.
- Фазові події звільняються або під час початку, або до кінця будь-якої з шести фаз життєвого циклу JSF.
Q # 15) Детально поясніть компоненти таблиці, прив'язані до даних.
Відповідь: Компоненти, відповідальні за відображення реляційних даних у табличному форматі, відомі як компоненти таблиці, пов’язані з даними. тег перебирає кожен запис, що відображається в рядках, тоді як тег відображати компоненти даних.
Деякі атрибути h: dataTable є padpad, cellpacing, bgcolor та border.
Q # 16) Перелічіть теги валідатора, доступні в JSF.
Відповідь: Теги валідатора перелічені нижче:
- f: validateLength використовується для перевірки довжини рядка.
- f: validateLongRange використовується під час перевірки діапазону числових значень.
- f: validateDoubleRange використовується під час перевірки діапазону плаваючих значень.
- f: validateRegex: перевірка порівнює заданий регулярний вираз із компонентами JSF.
Q # 17) Що таке анотації JSF?
Відповідь: Анотація в JSF допомагає у розробці чіткого та чистого коду. Він може використовуватися в самих пакетах, класах, конструкторах, інтерфейсах, полях, методах, параметрах, змінних або анотаціях.
В основному існує три категорії анотацій - а саме. Маркери, Однозначна анотація, Повні анотації.
Q # 18) Опишіть групування ресурсів.
Відповідь: Завжди зручно зберігати мітки інтерфейсу користувача, формат дати, повідомлення про стан та текстові елементи інтерфейсу, такі як зберігання параметрів для локалів для інтернаціоналізації тощо у файлі властивостей, а не жорстке їх кодування на кожній сторінці XHTML. Зберігання цих постійних значень в одному файлі та відображення цих значень на різних сторінках відоме як зв’язування ресурсів.
Дескриптор розгортання faces-config.xml містить налаштування конфігурації для програми JSF, де ми можемо налаштувати пакет ресурсів і зберегти ці значення в ньому.
Q # 19) Перелічіть переваги використання фреймворку JSF.
Відповідь: Нижче наведено деякі важливі переваги:
- Фреймворк JSF швидко створює користувальницькі інтерфейси зі вбудованою бібліотекою компонентів інтерфейсу користувача з розділенням між презентацією та поведінкою.
- Він має багату архітектуру для управління, обробки та перевірки вводу даних користувача.
- Його події інтегровані з кодом на стороні сервера.
- Пропонує підключається управління на рівні компонента.
- Підтримує функції доступності та інтернаціоналізації.
Q # 20) Перелічіть переваги мови виразу.
Відповідь: Мова вираження пропонує такі переваги:
- Автори сторінок можуть мінімізувати використання сценаріїв на веб-сторінці
- Запропонуйте більшу продуктивність
- Легкий в обслуговуванні
- Плоска крива навчання
- Входить до JSP 2.0, JSF
- Використання висловлювань на різних етапах життєвого циклу сторінки
- Встановіть дані зовнішніх об’єктів і отримайте ці дані за допомогою виразів
- Вирази методів пропонують обробку подій, перевірку та інші функціональні можливості для компонентів інтерфейсу JSF
Питання # 21) Поясніть, що може містити каталог військових файлів програми Java Server Faces?
Відповідь: Файл архіву веб-додатків (війни) програми JSF містить наступне:
- web.xml - ресурс конфігурації дескриптора веб-програми для веб-додатків.
- Основні класи в наборі файлів JAR (Java Archive).
- Класи програм, сторінки Java Server Faces, інші необхідні ресурси, такі як файли зображень.
- Файли ресурсів для конфігурації програми.
Q # 22) Які типи тегів Facelet використовуються в JSF 2.0?
Відповідь: Різні типи тегів Facelet в JSF 2.0:
- Шаблони пропонують загальний стиль та макет інтерфейсу у веб-програмах, ui: insert, ui: define, ui: include та ui: склад.
- Теги Param призначені для передачі параметрів у файл шаблону.
- Спеціальні теги відображати власний вміст.
- Видалити тег використовується для зупинки рендерингу коментованого коду JSF на стороні клієнта.
Q # 23) Опишіть стандартні бібліотеки тегів JSF
Відповідь: Стандартна бібліотека тегів JSF складається з різних типів вводу HTML. Деякі з них перелічені нижче:
- h: inputText: Створює текстове поле HTML типу тексту
- h: inputSecret: Текстове поле HTML типу пароля
- h: inputTextarea: Поле введення тексту HTML
- h: inputHidden: Введення типу HTML приховано
- h: selectBooleanCheckbox: Прапорець для одного HTML
- h: selectManyCheckbox: Для групи HTML прапорці
- h: selectOneRadio: Для одного перемикача HTML
- h: selectOneListBox: Для одного вікна списку HTML
Q # 24) Обговоріть важливість анотації @ManagedProperty в JSF 2.0.
Відповідь: Використовуючи анотацію @ManagedProperty, компонент може бути введений в інше властивість компонента, використовуючи метод встановлення компонента. Нам потрібен атрибут value, що містить ім’я компонента, яке потрібно ввести.
Q # 25) Що означає анотація @ApplicationScoped?
Відповідь: Анотація @ApplicationScoped використовується для визначення обсягу, в якому буде зберігатися компонент, який зберігатиметься під час взаємодії користувачів у веб-програмах. Керовані боби, як правило, відстають від створення.
Для того, щоб створити екземпляр сфери застосування з початком програми. Атрибут 'прагнення' справджується в керованому компоненті.
@ManagedBean (нетерплячий = правда)
@ApplicationScoped
Q # 26) Список компонентів таблиці, прив'язаних до даних, з JSF 2.0.
Відповідь: тег використовується для створення таблиці даних, а компоненти таблиці, прив'язані до даних, у JSF складаються з таких елементів, як сортування стовпців (за зростанням / спаданням), прапорці, пагінація.
Q # 27) Перелічіть різну реалізацію JSF.
Відповідь: Реалізації перелічені нижче:
Apache MyFaces | Oracle Mojarra | OmniFaces |
---|---|---|
JSF не підтримує послуги проміжного програмного забезпечення, такі як JAAS, JNDI, JMS та Java Mail | Підтримує послуги проміжного програмного забезпечення, такі як JAAS, JNDI, JMS та Java Mail | |
PrimeFaces | RichFaces | ДВІЗІ Обличчя |
Q # 28) Поясніть безпосередні та відображені атрибути в JSF.
Відповідь: Коли булеве значення безпосередній атрибут встановлено як true, він буде примушувати перетворення, події та обробку перевірки протягом фази запиту життєвого циклу JSF.
Візуалізований атрибут вирішить, що компонент повинен відображатися чи не відображатись на сторінці перегляду, він використовує арифметичні літерали та оператори з виразом rvalue, а не з виразом lvalue.
Q # 29) Перелічіть переваги тегів таблиць даних JSF.
Відповідь: Теги таблиці даних JSF використовуються для відображення реляційних даних у табличному форматі на сторінках перегляду JSF.
Переваги тегів таблиці даних:
- Для відображення даних таблиця даних може перебирати масиви або колекцію значень.
- Теги таблиці даних пропонують атрибути для модифікації своїх даних, які відображаються на сторінці перегляду JSF.
Q # 30) Диференціюйте між JSF 1.0 та JSF 2.0.
Відповідь: Відмінності між ними перелічені нижче:
JSF1.2 | JSF 2.0 |
---|---|
Керовані компоненти зареєстровані в faces-config.xml з JSF 1.2 | Анотації використовуються для реєстрації керованих компонентів у JSF 2.0 |
У JSF 1.0 Faces Servlet налаштовано в web.xml з url-шаблоном як / faces / * | У JSF 2.0 Faces Servlet налаштовано в web.xml із шаблоном url як * .xhtml |
JSF 1.2 був випущений з EL та вдосконаленою та уніфікованою обробкою огляду, щоб усунути щільне зчеплення з JSP. | JSF 2.0 пропонує підтримку запитів GET, нову область перегляду, використання анотацій, дженериків, включає фасети як перегляд за замовчуванням замість JSP та обробки ресурсів |
JSF 1.0 використовує API для користувацьких компонентів | JSP застарілий у JSF2.0 і замінений на Facelets (xhtml) |
Q # 31) Поясніть найкращі практики, що застосовуються для створення JSF-додатків.
Відповідь: Найкращі практики або правила, яких слід дотримуватись під час веб-розробки з використанням JSF, пов’язаних із різними компонентами, що підтримують сферу, такі:
- Почніть з @RequestScoped Bean, поки ділові дані та стан не втратяться, а потім виберіть наступний рівень вищого рівня.
- Щоб припинити обмін даними чи станом між усіма користувачами, уникайте сфери @ApplicationScoped.
- Щоб припинити обмін даними або станом між усіма вкладками браузера, уникайте @SessionScope.
- Щоб запобігти втраті даних і стану через HTTP-запити, уникайте @RequestScope.
- Область дії 'Перегляд', 'Потік', 'Сесія' та 'Бесіда' не впливають на користувачів.
- Уникайте виклику ділової логіки в методах отримання методів отримання JSF.
- Використовуйте набір результатів у властивості значення.
- Анотований метод @PostConstruct використовується для обчислення набору результатів.
Q # 32) Опишіть архітектуру JavaServer Faces
Відповідь: JavaServer Faces реалізує шаблон дизайну MVC, компоненти визначаються окремо, з різною логікою.
- Переглянути компонент для логіки презентації та
- Реалізовано модельний компонент для бізнес-логіки.
- Компонент контролера керує навігацією з одного виду на інший та виконує різні методи моделі.
Частина контролера складається з
- Сервлет контролера, тобто FacesServlet
- Централізований файл конфігурації, тобто faces-config.xml
- Набір обробників подій для веб-додатків.
Q # 33) Які відмінності між JSF та Spring Spring?
Відповідь: Відмінності між ними перелічені нижче:
Обличчя сервера Java | Весна |
---|---|
JSF використовуються для створення користувацьких інтерфейсів на основі компонентів для веб-додатків. | Spring використовує DispatcherServlet та шаблон дизайну контролера моделі перегляду для веб-додатків. |
Він має зрілі рамки користувальницького інтерфейсу, всеосяжні та багаті компоненти життєвого циклу на стороні сервера | Spring пропонує структуру програм для автономних, веб- та розподілених додатків. |
JSF дозволяє інтегрувати з HTML, JSP при розробці компонента представлення контролера перегляду моделі. | Швидкість, Безкоштовний маркер тощо використовуються для компонента подання з Spring framework |
Він не має заздалегідь визначеної підтримки для інтеграції JDBC, EJB, Hibernate та RMI | Він пропонує заздалегідь визначену підтримку для JDBC, EJB, Hibernate, RMI тощо. |
JSF - це важкий фреймворк | Весна - це легкий каркас |
Він має більшу залежність від API і не підтримує реалізації POJO | Він має реалізації POJO і менше залежності від API. |
Висновок
JavaServer Faces - це веб-фреймворк Java, який розробляє компоненти користувальницького інтерфейсу, використовуючи керовані компоненти, резервні компоненти, Facelets та інші користувацькі бібліотеки, такі як основні грані або крижані грані.
Архітектори додатків, розробники, автори компонентів та сторінок повинні добре знати різні фреймворки, такі як Java Server Faces, крім інших фреймворків, таких як Spring, Hibernate та Struts.
Цей посібник із питань співбесіди з JSF допоможе вам підготуватися до більшості інтерв’ю з JSF.
Рекомендована література
- Топ 20 програм інтерв'ю Java для програмування та кодування інтерв'ю
- Запитання та відповіді на інтерв’ю JSP (оновлено 2021)
- 30+ ТОП запитань та відповідей на інтерв’ю для сервлетів (СПИСОК 2021)
- Кращі 50+ основних запитань та відповідей на інтерв’ю Java
- 30+ найкращих колекцій Java - запитання для інтерв’ю з відповідями (2021 СПИСОК)
- 25 найкращих платформ для тестування Java та інструментів для автоматичного тестування (частина 3)
- Топ 20+ запитань та відповідей на інтерв’ю .NET
- Запитання та відповіді на інтерв’ю