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

這裏ServletContext是接口。清除ServletContext的內容context = getServletContext();

上下文是ServletContext的

getServletContext的類型是在ServletContext接口的方法返回有關servlet的信息。

這裏我的問題是我們正在創建一個接口的上下文對象。我們如何創建一個接口的對象?

如果不是我們正在爲ServletContect創建對象我們在這裏做什麼 ServletContext和getServletContext()之間的映射是什麼?

請提前一步說明謝謝?

+4

不,'getServletContext'是'ServletRequest'接口中的一個方法。感覺實際上你的問題更多地是關於接口,而不是servlet。我建議你在繼續使用servlet之前閱讀關於接口的Java教程。 – 2013-03-08 20:43:32

+0

你的問題不是很清楚。首先,在ServletContext接口中沒有方法'getServletContext()'(參見[javadoc](http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html))。你澄清你後面的內容? – beny23 2013-03-08 20:44:55

+1

@JonSkeet:或者可能在'ServletConfig'中...... – beny23 2013-03-08 20:46:07

回答

0

你的問題是How can we create an object for interface?
Answer is :我們不能創建接口(任何接口)的對象,但我們可以給接口實現類的對象的引用(這是有效的,並給出了多態和繼承在OOPS)
我會建議閱讀Head First Core Java以更好地理解所有這些事情。
我們不能在接口之後調用new關鍵字並以分號結尾例如:

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類匿名類。