2014-03-07 69 views
3

我所要做的就是從我的.jsp頁面調用Java代碼。我爲webapp編寫了一些.jsp頁面,但隨着項目的增長,我想開始將一些代碼放入.java類或servlet中。如何從Eclipse的JSP項目中正確調用我的Java代碼

爲什麼Eclipse在我的/ src或/ lib/web或/ WebContent或/ WebContent/src或/ WebContent/WEB-INF/lib或/ Webcontent/WEB-INF/src中「查看」 ?畢竟,它「看到我的sql jdbc .jar文件,我可以在/ WebContent/WEB-INF/src(而不是任何其他文件夾)中使用它們,但是我編寫了包中的類,我的代碼因爲eclipse沒有選擇它們。

+2

你應該在創建一個大型項目之前用eclipse做一些關於jsp的教程 –

+0

這與eclipse無關,除非你沒有爲你正在嘗試的eclipse安裝正確的「版本」做。 Eclipse JEE是您創建Web項目所需的東西。 – Matt

+0

另外,你正在部署什麼web服務器?這會對它產生影響(apache,tomee +,weblogic,websphere等) – Matt

回答

0

這回答這個問題,無關與我的設置或import語句的動作的形式。正確的答案是,eclipse並沒有說明它在運行項目時「看到」(或編譯它)的代碼。在我的JSP頁面上,它顯示它識別對我的java代碼的調用。但是,當我運行該頁面時,它仍在編譯我的Java代碼的舊版本,該版本沒有我的最新更改。我發現了最好的方法來保證當我運行我的.jsp程序(調用java)時編譯我引用的java代碼的最新版本是去「Project-> Build All」,然後轉到「Servers」 ,右鍵單擊「發佈」。如果「發佈」不是一個選項,並且它認爲它已經同步,那麼您可能必須更改.jsp頁面並將其保存,然後「發佈」將再次變爲活動狀態。

1

您需要安裝Eclipse的Java EE版本,並創建一個Java Web應用程序,它將允許您設置一個web.xml 。我已經安裝了建立web項目

的Eclipse JEE是: http://eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/keplerr

你的web.xml將definte你的網頁的servlet,它可以是一個擴展servlet實現JSP的或Java類

這與您的IDE(eclipse)相比,它不如Java Web應用程序。

你應該閱讀本文檔有關Web應用從Oracle啓動,並從那裏上建立一個IDE:

http://docs.oracle.com/javaee/1.4/tutorial/doc/WebApp.html

編輯根據用戶反饋

進口應該是課堂級別:

<%@ page import="fully.qualified.SomeClass" %> 

然後從你的JSP代碼:

<% 
    SomeClass someClass = new SomeClass(); 
    someClass.helloWorld(); 
%> 

編輯2基於反饋

嘗試此鏈接使用網頁做的包括:http://www.coderanch.com/t/286168/JSP/java/Calling-Java-classes-JSP-page

另類視角

  1. 向您的web.xml添加一個新類,您希望將您的請求/表單數據發送到該類。所以你的JSP將是1個servlet,你的其他java類將是你的其他servlet。

  2. 在你的JSP,創建具有新的「TestProgram」的servlet

+0

我正在使用Java EE,並且我已經創建了一個Java Web應用程序。我的網絡應用程序已經工作(它會登錄到不同的數據庫,重置密碼或運行查詢,然後將結果返回到一個不錯的表格中)。現在我只是試圖添加電話到我的個人Java代碼。當我<%@頁面導入「com.microsoft.sqlserver.jdbc。*」%>我可以開始調用裏面的類。爲什麼不能將我的軟件包包含在內,並使用我的個人代碼? – Dustin

+0

嘗試導入特定的類不僅僅是。*。看到這個鏈接:http://stackoverflow.com/questions/239147/how-do-you-import-classes-in-jsp例如如何導入。例如<%@ page import「com.yourpackage.YourClass」%>然後您就可以從JSP頁面調用YourClass.yourMethod()。 – Matt

+0

我根據我們的討論更新了我的答案;一定要接受答案,如果它可以幫助你解決你的問題! – Matt

相關問題