2011-07-31 29 views
1

好的,這是當天最簡單的問題。這是我第一次嘗試Java和JSP。Java to JSP - 如何將Java應用程序集成到JSP網頁中?

我剛剛使用Eclipse寫了一個小小的Java應用程序。現在我想把這個小應用程序放到網頁中。我需要弄清楚Java應用程序和網頁之間的聯繫。

這裏是我的應用程序:

public class PhraseOMatic { 

    public static void main(String[] args) { 

     // CREATE WORD ARRAYS 
    String[] wordListOne = {"24/7", "Multi-tier", "30,000 foot", "B-to-B", "win-win", "front-end", "back-end", "web-based"}; 
    String[] wordListTwo = {"empowered", "sticky", "concentric", "distributed", "leveraged", "shared", "accelerated", "aligned"}; 
    String[] wordListThree = {"process", "tipping point", "mindshare", "mission", "space", "paradigm", "portal", "vision"}; 

    // CALCULATE ARRAY LENGTHS 
    int oneLength = wordListOne.length; 
    int twoLength = wordListTwo.length; 
    int threeLength = wordListThree.length; 


    // PRINT OUT THE PHRASE 
    int i = 1; 
    while (i < 10) { 
     // GENERATE RANDOM NUMBERS 
     int rand1 = (int) (Math.random() * oneLength); 
     int rand2 = (int) (Math.random() * twoLength); 
     int rand3 = (int) (Math.random() * threeLength); 

     // BUILD A PHRASE 
     String phrase = wordListOne[rand1] + " " + wordListTwo[rand2] + " " + wordListThree[rand3]; 

     // PRINT OUT PHRASE 
     System.out.println("What we need is a " + phrase + "."); 
     i = i + 1; 

    } 

} 

}

如何我得到的編譯的應用程序呈現爲網頁?接下來我需要採取哪些步驟?

謝謝!

+0

我認爲你需要的是一個基於網絡的分佈式過程。 – Pindatjuh

+0

您確定我不需要B-to-B槓桿門戶嗎? –

+0

缺少的鏈接是servlet:http://stackoverflow.com/tags/servlets/info – BalusC

回答

10

1)你必須用一些返回一些結果的方法來定義一個類。例如

package example; 
public class WordLength { 

private String word=""; 
public int length=0; 

public WordLength(){} 

public void setWord(String w){ 
    word = w; 
    length = word.length(); 
} 

public String getWord(){ 
    return word; 
} 

public int getLength(){ 
    return length; 
} 

} 

2)您必須編譯java文件並生成.class。您可以使用命令javac來完成此操作。否則,您可以查看您的eclipse工作區的文件夾,並在項目的文件夾中找到從eclipse生成的.class

3)把這個文件放在一個叫做WEB_INF\classes\example的文件夾中,它保留在你的tomcat文件夾的根目錄下。 (例子是包的名稱))

4在你的JSP文件導入Java類,並使用它:

<!-- wordLegth.jsp --> 

<%@ page language="java" import="java.util.*" %> 

<html> 
    <head> 
    <title>Word length</title> 
    </head> 
    <body> 

    <jsp:useBean id="counter" scope="session" class="example.WordLength"/> 

    <% 
     String w1= request.getParameter("p1"); 
     int l1 = 0; 
     counter.setWord(w1); 
     l1 = counter.getLength(); 
    %> 

    <p> The word <%= w1 %> has <%= l1 %> characters.</p> 

    </body> 
</html> 

這個例子是通過要求用戶插入Word表格自動調用:

<!-- form.html --> 
<html> 
    <head> 
    <title>Form</title> 
    </head> 
    <body> 

    <form action="wordLegth.jsp"> 

     <p> Word 1: <input name="p1"></p> 
     </p> 
     <input type="submit" value="Count"> 
    </form> 
    </body> 
</html> 

問候, 盧卡

+1

這很有幫助.. + 1 – DaMainBoss

+0

有幫助,是的。正確的方式,不。 – BalusC

2

你必須返回一個字符串,在這種情況下,一個很好的詞。爲此,請勿使用System.out.println,因爲它會將字符串發送到標準輸出。我們希望網頁上的字符串,所以這是不好的。

使用StringBuilder收集您的短語。將其作爲字符串數組返回,String[]。正如前面的段落所示,我們需要擺脫main-方法:我認爲這個方法就足夠了:PhraseOMatic.generatePhrases()

然後,創建一個JSP頁面,請參見this tutorial

<% 
    for(String phrase : PhraseOMatic.generatePhrases()) { 
     out.println(phrase); 
     out.println("<br/>"); 
    } 
%> 
相關問題