Вопросы OCEJWCD - PullRequest
       11

Вопросы OCEJWCD

0 голосов
/ 03 июня 2018

Я готовлюсь к OCEJWCD, и есть несколько вопросов, где ответы Whizlabs и Enthuware не совпадают с тем, что я узнаю, когда запускаю свой код и проверяю их.Мы высоко ценим вашу помощь в их решении.

Вопрос 1: Полномочия реализации безопасности сервлетов друг над другом при использовании в одном шаблоне URL

Речь идет о сценарии, в котором ограничения безопасности были определены для одного и того же шаблона URL с использованием всех трех реализаций,

  1. Элемент ограничения безопасности в web.xml
  2. setServletSecurityметод интерфейса ServletRegistration.Dynamic
  3. Аннотация @Servletsecurity в сервлете

Ответы в пробных экзаменах гласят, что порядок полномочий (какой из них превосходит другие, когда шаблон URLсоответствует всем 3): 1 (самый мощный), 2, а затем 3

Но когда я запускаю код, я вижу, что эта аннотация @ServletSecurity является более мощной, чем метод setServletSecurity интерфейса ServletRegistration.Dynamic. Какой из них правильный ??

Вопрос 2: jsp: useBean, если используется в классе, НЕ имеющем конструктор без аргументов

В экзаменах есть общий вопрос, который спрашивает, что произойдет, если jsp: useBean используется в классе для его создания, но класс НЕ имеет конструктора без аргументов.

Давайте возьмемНапример, у меня есть служащий класса

public class Employee {

    private Integer employeeId;

    private String name;

    public Employee(Integer employeeId, String name) {
        this.employeeId = employeeId;
        this.name = name;
    }

    public Integer getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Integer employeeId) {
        this.employeeId = employeeId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

И ни в одном из четырех областей нет объекта, и у меня есть это в jsp

<jsp:useBean id="employee" class="com.kingshuk.model.Employee" />

Я полагаю, что это вызоветисключение во время выполнения, потому что tomcat пытается сделать что-то подобное

com.kingshuk.model.Employee employee = null;
boolean _jspx_specialmb  = false;
synchronized (pageContext) {
    employee= (com.kingshuk.model.Employee)pageContext.getAttribute("employee",PageContext.PAGE_SCOPE);
    if ( employee == null ) {
        _jspx_specialmb = true;
        try {
            employee = (com.kingshuk.model.Employee)     java.beans.Beans.instantiate(this.getClass().getClassLoader(), "com.kingshuk.model.Employee");
        } catch (Exception exc) {
            throw new ServletException (" Cannot create bean of class "+"com.kingshuk.model.Employee", exc);
        }
        pageContext.setAttribute("employee", employee, PageContext.PAGE_SCOPE);
    }
} 

Но некоторые ответы говорят, что это вызовет ошибку компиляции, а не исключение во время выполнения. Какой из них правильный ??

Любая помощь, которую я могу получить, высоко ценится перед экзаменом 26 июля.

Спасибо, Кингшук

...