2013-03-08 2 views
1
ServletContext context=getServletContext(); 

Здесь ServletContext - это интерфейс.Clear Expanation for ServletContext context = getServletContext();

Контекст тип ServletContext

getServletContext является метод ServletContext интерфейса возврата информации о Servlet.

Здесь мой вопрос: мы создаем объект контекста для интерфейса. Как мы можем создать объект для интерфейса?

Если нет, мы создаем объект для ServletContect, что именно мы здесь делаем Что такое сопоставление между ServletContext и getServletContext()?

Пожалуйста, объясните шаг за шагом заранее!

+4

Нет, 'getServletContext' - это метод в интерфейсе' ServletRequest'. Похоже, на самом деле ваш вопрос связан скорее с интерфейсами вообще, чем с сервлетами в частности. Я предлагаю вам прочитать учебник по интерфейсам Java, прежде чем перейти к сервлетам. –

+0

Ваш вопрос не очень ясен. Для начала не существует метода 'getServletContext()' в интерфейсе 'ServletContext' (см. [Javadoc] (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html). вы уточните, что вы после? – beny23

+1

@JonSkeet: или, возможно, в 'ServletConfig' ... – beny23

ответ

0

Ваш вопрос How can we create an object for interface?
Answer is : Мы не можем создать объект интерфейса (любой интерфейс), но мы можем назначить отнесение объекта интерфейс, реализованный класса (Это справедливо и дает полиморфизм и наследование в упс)
Я хотел бы предложить читать Головной первый ядро ​​Java, чтобы лучше понять все эти вещи.
Мы не можем вызывать new ключевое слово после интерфейса и заканчивается точкой с запятой Ex.

ServletContext context = new ServletContext(); //invalid. cannot end with semicolon 

Но после нескольких чтения вы найдете конструкт/синтаксис как

ServletContext context = new ServletContext() { // see semicolon absent after() 

// and all methods here with some definition 

}; 

Это анонимный класс, который реализует интерфейс ServletContext.

, если вы видите, как построить

Thread t = new Thread() { //semicolon is absent after() bracket 

}; 

означает, что анонимный класс, который расширяет класс Thread.

0

getServletContext не метод ServletContext интерфейс. Это метод интерфейса ServletConfig, который реализует GenericServlet, и благодаря этому он доступен в HttpServlet, который простирается на GenericServlet. ServletContext может быть реализован веб-серверами, и они могут возвращать объект этого класса в GenericServlet.

Надеюсь, это объяснение поможет.

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