1. 程式人生 > >JAVA+TOMCAT 網站部署第一天

JAVA+TOMCAT 網站部署第一天

JAVA+TOMCAT網站部署第一天

安裝APACHE Tomcat 5.0,預設有Tomcat的服務程式執行,在ROOT目錄加入Jsp檔案,似乎無法執行。採用命令視窗方式執行。執行"E:/program files/Apache Software Foundation/Tomcat 5.0/bin/startup.bat"

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

環境變數配置:

Tomcat的根目錄CATALINA_HOME

E:/program files/Apache Software Foundation/Tomcat 5.0

JAVA的類路徑[第一個點”.;”表示當前路徑] CLASSPATH

.;M:/Java/Demos;C:/j2sdk1.4.2_04;C:/j2sdk1.4.2_04/lib/tools.jar;C:/j2sdk1.4.2_04/lib/dt.jar;C:/j2sdk1.4.2_04/lib/tools.jar;C:/j2sdk1.4.2_04/lib/htmlconverter.jar; C:/j2sdk1.4.2_04/lib/servlet.jar;M:/Java

JAVA根目錄JAVA_HOME

C:/j2sdk1.4.2_04

PATH環境變數中加入C:/j2sdk1.4.2_04/bin;這樣直接執行javac.exejava.exe

就能找到JAVA對應的可執行檔案了。

winXP,系統環境變數不需要重新啟動系統就能起作用,但是需要重新開啟應用程式,使用者變數需要重新啟動系統才能生效。

Edit PlusJava環境配置:

原來曾用過JCreator進行Java程式碼編寫,而且是J2ME摩托羅拉手機程式編寫的配置,複雜得多,可以參考:

寫手機程式請用JCreator pro原作]

這裡Edit Plus主要是在Tools/Configure User Tools …裡面新增命令。這裡簡單的配置如下:

Group Name … Java Tools

功能:編譯Java檔案,生成classJava檔案所在目錄

Menu Text: Java Compile

Command: C:/j2sdk1.4.2_04/bin/javac.exe

Argument: $(FileName)

Initial Directory: $(FileDir)

功能:執行生成的class檔案

Menu Text: Java Run

Command: C:/j2sdk1.4.2_04/bin/java.exe

Argument: $(FileNameNoExt)

Initial Directory: $(FileDir)

功能:[開啟class檔案]JAD直接進行反編譯,生成Java檔案到class檔案所在目錄

Menu Text: JAD Decompile

Command: M:/Java/Tools/jad_win/jad.exe

Argument: -o -d ./ -s java $(FileNameNoExt).class

Initial Directory: $(FileDir)

功能:用Edit Plus開啟反編譯生成的java檔案

Menu Text: Open Decompile File

Command: E:/program files/EditPlus 2/editplus.exe

Argument: $(FileNameNoExt).java

Initial Directory: $(FileDir)

加入自定義工具以後,直接用Ctrl+1[~N]執行自定義工具。

/* 以下所說[根目錄]

* E:/program files/Apache Software Foundation/Tomcat 5.0/webapps/ROOT

*/

Java Bean 部署過程:

1. [根目錄]/ WEB-INF/classes/test/下面新建FAQ.txt,改名為FAQ.java

2. FAQ.java輸入內容:

package test;

public class FAQ{

public FAQ () {

System.out.println(“FAQ Construction Method”);

}

public sayHello(){

System.out.println(“FAQ : Hello World!”);

}

}

3. 編譯以上內容,在[根目錄]/ WEB-INF/classes/test/生成*.class檔案。

4. [根目錄]/test/下面新建faq.txt,改名為faq.jsp

5. faq.jsp輸入內容:

<?xml:namespace prefix = jsp />

<%

workM.sayHello();

%>

6. 現象:sayHello將在Tomcat的命令列視窗輸出” FAQ : Hello World!”;在JSP檔案中使用System.out.println同樣輸出到命令列視窗,out.println則直接輸出到瀏覽器。

7. Java Bean的使用方法二:在JSP中加入引用

<%@ page import="test.*"%>

呼叫的時候,

faq myfaq = new faq();

myfaq.sayHello();

這種方法的好處是,每個JSP中可以多次定義物件。

Servlet 部署過程:

1.[根目錄]/ WEB-INF/classes/test/下面新建FaqServlet.txt,改名為FaqServlet.java

2.FaqServlet.java輸入內容:

package test;

import java.io.*;

import javax.servlet.http.*;

import javax.servlet.*;

public class FaqServlet extends HttpServlet

{

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException{

response.setContentType("text/xml");

PrintWriter out = response.getWriter();

out.println("Hello World!");

}

}

Servlet 是一個從HttpServlet派生的所有物件的統稱。主要處理doGetdoPost兩個方法,doGet就是一般情況,瀏覽器從伺服器取網頁,doPost就是瀏覽器通過Post的方法從伺服器取資料,比如網頁中formmethod=”post”提交到伺服器。

3.[根目錄]/ WEB-INF/web.xml節點下面新增內容:

FaqServletL

test.FaqServlet

根據url-pattern來獲取servlet-name,再根據servlet-name來獲取servlet-class">

FaqServletL

/servlet/FaqServlet

主要含義應該是:當URL中是的時候使用的servlet的名稱是FaqServletL,伺服器根據FaqServlet找到名稱為FaqServletLServlet,並通過servlet-class test.FaqServlet來定位Servlet的位置。

4.現象:瀏覽地址,瀏覽器開啟一個頁面,效果和xml一樣,因為上面response.setContentType("text/xml");如果需要用text/html,則是html頁面了,不過需要補全html程式碼了。

5.似乎Servlet可以不用部署就可以用的,暫時還不知道,具體以後學習。

Taglib 部署過程:

1.[根目錄]/ WEB-INF/classes/test/hello/下面新建HelloTag.java

2.HelloTag.java輸入內容:

package test.hello;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspTagException;

import javax.servlet.jsp.tagext.TagSupport;

public class HelloTag extends TagSupport {

public HelloTag() {

}

public int doEndTag() throws JspException{

try{

pageContext.getOut().print("Hello World!");

}catch(Exception ex){

ex.printStackTrace();

}

return SKIP_BODY;

}

public void release(){

super.release();

}

}

TagLib應該就是都該從TagSupport派生出來的了。

3.[根目錄]/ WEB-INF/目錄下面新建mytaglib.tld

4.mytaglib.tld輸入內容:

<?xml version="1.0" encoding="UTF-8"?>

1.0

1.1

mytablib

/mytaglib

hello

test.hello.HelloTag

empty

Just Says Hello

裡面覺得主要的兩個內容是將在jsp中引用的時候用到,tag/tagclassTagLib對應class的引用,和上面Javapackage對應。

5.[根目錄]/ test/下面新建helloTag.jsp,並輸入內容:

<%@ taglib uri="/mytaglib" prefix="mm" %>

<?xml:namespace prefix = mm />

這樣就行了。通過mm來呼叫taglib裡面的類,函式。看起來似乎Java Bean也可以實現同樣的功能,而且似乎Java Bean更加靈活,初學,需要以後進一步認識。

7.tld中似乎有直接對TagLib類中的static函式進行部署的方法,暫時沒有嘗試出來。這種方法在Java Bean中應該沒有可替代的方法吧!

小結:

1.JAVA中的網站建設可以這麼多層次,明顯增加了靈活性,可使用JAVA所有類庫的,這樣做出來的網站,無疑功能可以是非常強大的。

2.使用JAD等反編譯工具,可以將Java 的目標檔案class反編譯出來,這樣要學習別人的成果,變得非常容易,但是也同樣自己的程式碼也不安全了。

3.JAVA在不同系統中的支援,增加了程式的可複用性,實現同樣功能,用不同的類庫,語言寫幾次實在不爽。

4.JAVA包括派生出來的工具環境的配置紛繁複雜,還真是麻煩。J Builder挺好用,為了更透徹瞭解JAVA,瞭解一下不同的部署步驟還是必要的。