JAVA+TOMCAT網(wǎng)站部署第一天
安裝APACHE Tomcat 5.0,默認有Tomcat的服務程序運行,在ROOT目錄加入Jsp文件,似乎無法運行。采用命令窗口方式運行。運行"E:\program files\Apache Software Foundation\Tomcat 5.0\bin\startup.bat",
環(huán)境變量配置:
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環(huán)境變量中加入C:\j2sdk1.4.2_04\bin;這樣直接運行javac.exe,java.exe就能找到JAVA對應的可執(zhí)行文件了。
對winXP,系統(tǒng)環(huán)境變量不需要重新啟動系統(tǒng)就能起作用,但是需要重新打開應用程序,用戶變量需要重新啟動系統(tǒng)才能生效。
Edit Plus中Java環(huán)境配置:
原來曾用過JCreator進行Java代碼編寫,而且是J2ME摩托羅拉手機程序編寫的配置,復雜得多,可以參考:
寫手機程序請用JCreator pro sunyuzhe114 [原作]
http://dev.csdn.net/Develop/article/13/13625.shtm
這里Edit Plus主要是在Tools/Configure User Tools …里面添加命令。這里簡單的配置如下:
Group Name … :Java Tools
功能:編譯Java文件,生成class到Java文件所在目錄
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輸入內(nèi)容:
package test;
public class FAQ{
public FAQ () {
System.out.println(“FAQ Construction Method”);
}
public sayHello(){
System.out.println(“FAQ : Hello World!”);
}
}
3. 編譯以上內(nèi)容,在[根目錄]/ WEB-INF\classes\test\生成*.class文件。
4. [根目錄]/test/下面新建faq.txt,改名為faq.jsp
5. faq.jsp輸入內(nèi)容:
<%
workM.sayHello();
%>
6. 現(xiàn)象:sayHello將在Tomcat的命令行窗口輸出” FAQ : Hello World!”;在JSP文件中使用System.out.println同樣輸出到命令行窗口,out.println則直接輸出到瀏覽器。
7. Java Bean的使用方法二:在JSP中加入引用
<%@ page import="test.*"%>
調(diào)用的時候,
faq myfaq = new faq();
myfaq.sayHello();
這種方法的好處是,每個JSP中可以多次定義對象。
Servlet 部署過程:
1. 在[根目錄]/ WEB-INF/classes/test/下面新建FaqServlet.txt,改名為FaqServlet.java
2. FaqServlet.java輸入內(nèi)容:
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派生的所有對象的統(tǒng)稱。主要處理doGet,doPost兩個方法,doGet就是一般情況,瀏覽器從服務器取網(wǎng)頁,doPost就是瀏覽器通過Post的方法從服務器取數(shù)據(jù),比如網(wǎng)頁中form的method=”post”提交到服務器。
3. [根目錄]/ WEB-INF/web.xml的節(jié)點下面添加內(nèi)容:
FaqServletL
test.FaqServlet
根據(jù)url-pattern來獲取servlet-name,再根據(jù)servlet-name來獲取servlet-class">
FaqServletL
/servlet/FaqServlet
主要含義應該是:當URL中是http://[ROOT]/servlet/FaqServlet的時候使用的servlet的名稱是FaqServletL,服務器根據(jù)FaqServlet找到名稱為FaqServletL的Servlet,并通過servlet-class test.FaqServlet來定位Servlet的位置。
4. 現(xiàn)象:瀏覽地址http://127.0.0.1:8080/servlet/FaqServlet,瀏覽器打開一個頁面,效果和xml一樣,因為上面response.setContentType("text/xml");如果需要用text/html,則是html頁面了,不過需要補全html代碼了。
5. 似乎Servlet可以不用部署就可以用的,暫時還不知道,具體以后學習。
Taglib 部署過程:
1. [根目錄]/ WEB-INF/classes/test/hello/下面新建HelloTag.java
2. HelloTag.java輸入內(nèi)容:
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輸入內(nèi)容:
1.0
1.1
mytablib
/mytaglib
hello
test.hello.HelloTag
empty
Just Says Hello
里面覺得主要的兩個內(nèi)容是將在jsp中引用的時候用到,tag/tagclass是TagLib對應class的引用,和上面Java的package對應。
5. [根目錄]/ test/下面新建helloTag.jsp,并輸入內(nèi)容:
<%@ taglib uri="/mytaglib" prefix="mm" %>
這樣就行了。通過mm來調(diào)用taglib里面的類,函數(shù)。看起來似乎Java Bean也可以實現(xiàn)同樣的功能,而且似乎Java Bean更加靈活,初學,需要以后進一步認識。
6. 現(xiàn)象:瀏覽地址http://[ROOT]/test/helloTag.jsp,頁面顯示:”Hello World!”
7. tld中似乎有直接對TagLib類中的static函數(shù)進行部署的方法,暫時沒有嘗試出來。這種方法在Java Bean中應該沒有可替代的方法吧!
小結(jié):
1. JAVA中的網(wǎng)站建設可以這么多層次,明顯增加了靈活性,可使用JAVA所有類庫的,這樣做出來的網(wǎng)站,無疑功能可以是非常強大的。
2. 使用JAD等反編譯工具,可以將Java 的目標文件class反編譯出來,這樣要學習別人的成果,變得非常容易,但是也同樣自己的代碼也不安全了。
3. JAVA在不同系統(tǒng)中的支持,增加了程序的可復用性,實現(xiàn)同樣功能,用不同的類庫,語言寫幾次實在不爽。
4. JAVA包括派生出來的工具環(huán)境的配置紛繁復雜,還真是麻煩。J Builder挺好用,為了更透徹了解JAVA,了解一下不同的部署步驟還是必要的。
轉(zhuǎn):http://blog.csdn.net/hahu/archive/2004/07/18/44545.aspx
posted on 2008-09-18 22:18
poower 閱讀(1374)
評論(0) 編輯 收藏 所屬分類:
j2ee學習筆記