2015-05-23 43 views
-1

我得到了Tomcat 7.0.62,我只想獲得一個.jsp,並且可以訪問數據庫並可以訪問其他文件中的其他.class文件。我組成了一個foo班,並嘗試在.jsp中聲明<% foo bar = new foo(); %>,但它不會將foo識別爲類型。我把foo.class放在WEB-INF/classes目錄下,因爲這是我讀Tomcat看起來的地方。從.jsp訪問.class'es和.jar

Tomcat之外我能夠獲得我想要的Java功能作爲一個獨立的程序。這是當我嘗試將它放入Tomcat的.jsp時,Tomcat拒絕看到我想要的東西。

我懷疑問題是部署。除非Tomcat正確部署爲webapp,否則Tomcat不會授予.jsp.class'esojdbc6.jar的訪問權限嗎?我寧願不要惹惱.war's。我怎樣才能得到它,所以當我登錄到www.mydomain.com它提供了我的index.jsp訪問ojdbc6.jar和我的foo.class?目前它沒有任何功能,因爲我沒有部署/應用程序。如何重新部署/並給我的.jsp我想要的訪問權限?

+0

你的「foo」類在'package'中嗎? Tomcat的確給了'.jsp'文件「訪問」這些類。 –

+0

不,它不是在我想要使用的類的源代碼中的任何地方使用包字,所以我只是把它放在WEB-INF/classes目錄中。爲什麼你的單詞用引號存取?那是什麼意思? –

+0

把你的Java類放入一個包中,然後在你的JSP中使用'import'和正確的包名和類名。你可以將代碼發佈到一個不起作用的示例JSP嗎? –

回答

0

JSP文件(就像普通的Java類一樣)不能引用未被特別導入的類。

你需要像這樣在你的頁面的頂部:

<%@page import="foo" %> 
<% foo bar = new foo(6); %> 
<%= bar.get(); %> 

您可能會發現import="foo"不起作用,因爲,一般來說,每類應該是在一個包。我似乎回想起servlet(或JSP)規範中的一個要求,即所有類必須位於一個包中,但我可能只是在發明它,因爲這是一個好主意。