Я готовлюсь к OCEJWCD, и есть несколько вопросов, где ответы Whizlabs и Enthuware не совпадают с тем, что я узнаю, когда запускаю свой код и проверяю их.Мы высоко ценим вашу помощь в их решении.
Вопрос 1: Полномочия реализации безопасности сервлетов друг над другом при использовании в одном шаблоне URL
Речь идет о сценарии, в котором ограничения безопасности были определены для одного и того же шаблона URL с использованием всех трех реализаций,
- Элемент ограничения безопасности в web.xml
- setServletSecurityметод интерфейса ServletRegistration.Dynamic
- Аннотация @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 июля.
Спасибо, Кингшук