首先,到 這裏 下載最新版本的tomcat,我下載的版本是7.0.32(Last modified 2012-10-07 18:36)
然後,解壓縮
- $ tar zxvf apache-tomcat-7.0.8.tar.gz
$ tar zxvf apache-tomcat-7.0.8.tar.gz
運行之前,先要做一些配置工作(前提:Java我已經安裝過了)
先是查看本機的java版本:
- tomxue@ubuntu:~/App$ java -version
- java version "1.6.0_06"
- Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
- Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
- tomxue@ubuntu:~/App$ sudo update-alternatives --config java
- There are 4 choices for the alternative java (providing /usr/bin/java).
- Selection Path Priority Status
- ------------------------------------------------------------
- 0 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 auto mode
- 1 /usr/bin/gij-4.6 1046 manual mode
- 2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 manual mode
- * 3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
- 4 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1051 manual mode
- Press enter to keep the current choice[*], or type selection number:
tomxue@ubuntu:~/App$ java -version
java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
tomxue@ubuntu:~/App$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 auto mode
1 /usr/bin/gij-4.6 1046 manual mode
2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 manual mode
* 3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
4 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1051 manual mode
Press enter to keep the current choice[*], or type selection number:
然後設置環境變量:
在~/.bashrc文件中加入下列語句,以設置相應的環境變量(會在每次開啓bash時自動設置)
- export JAVA_HOME="/usr/lib/jvm/java-6-sun/"
- export CLASSPATH="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar"
export JAVA_HOME="/usr/lib/jvm/java-6-sun/"
export CLASSPATH="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar"
存盤退出,再執行一次剛纔的設置(這次就省點兒事,先不退出bash了)
- $ . ~/.bashrc
$ . ~/.bashrc
現在,可以執行了
- tomxue@ubuntu:~/App/apache-tomcat-7.0.32/bin$ ./startup.sh
- Using CATALINA_BASE: /home/tomxue/App/apache-tomcat-7.0.32
- Using CATALINA_HOME: /home/tomxue/App/apache-tomcat-7.0.32
- Using CATALINA_TMPDIR: /home/tomxue/App/apache-tomcat-7.0.32/temp
- Using JRE_HOME: /usr/lib/jvm/java-6-sun/
- Using CLASSPATH: /home/tomxue/App/apache-tomcat-7.0.32/bin/bootstrap.jar:/home/tomxue/App/apache-tomcat-7.0.32/bin/tomcat-juli.jar
tomxue@ubuntu:~/App/apache-tomcat-7.0.32/bin$ ./startup.sh
Using CATALINA_BASE: /home/tomxue/App/apache-tomcat-7.0.32
Using CATALINA_HOME: /home/tomxue/App/apache-tomcat-7.0.32
Using CATALINA_TMPDIR: /home/tomxue/App/apache-tomcat-7.0.32/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun/
Using CLASSPATH: /home/tomxue/App/apache-tomcat-7.0.32/bin/bootstrap.jar:/home/tomxue/App/apache-tomcat-7.0.32/bin/tomcat-juli.jar
看到上面的輸出,應該就成功了。
接下來,打開Firefox,並輸入網址:http://localhost:8080/
可以看到如下頁面
點擊頁面上的"Server Status",發現要賬號和密碼,怎麼辦?
進入conf目錄,修改文件如下:
- ubuntu:~/App/apache-tomcat-7.0.32/conf$ cat tomcat-users.xml
- <?xml version='1.0' encoding='utf-8'?>
- <tomcat-users>
- <!--
- <role rolename="tomcat"/>
- <role rolename="role1"/>
- <user username="tomcat" password="tomcat" roles="tomcat"/>
- <user username="both" password="tomcat" roles="tomcat,role1"/>
- <user username="role1" password="tomcat" roles="role1"/>
- -->
- <role rolename="manager-gui"/>
- <user username="tomcat" password="tomcat" roles="manager-gui"/>
- </tomcat-users>
ubuntu:~/App/apache-tomcat-7.0.32/conf$ cat tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>
那麼,只需要輸入賬號和密碼均爲tomcat即可,現在再點擊"Server Status",呈現出的頁面如下:
jsp試驗
接下來,可以試試服務器端的jsp執行了。
進入下面的路徑並創建jsp文件test.jsp
- tomxue@ubuntu:~/App/apache-tomcat-7.0.32/webapps/ROOT$ vi test.jsp
tomxue@ubuntu:~/App/apache-tomcat-7.0.32/webapps/ROOT$ vi test.jsp
文件內容如下:
- <%@ page language="java" contentType="text/html;charset=gb2312"%>
- <%
- out.print("I love jsp!");
- %>
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
out.print("I love jsp!");
%>
存盤退出。
在Firefox網址欄輸入:http://localhost:8080/test.jsp
結果怎麼樣?
在Android模擬器上連接tomcat
目的:
在Android上跑一個project,可以通過3種方式申請http連接至tomcat服務器。
代碼在這裏:https://github.com/tomxue/snippet_Android_HttpRequest.git
聲明:這份代碼(1st commit)基本原封不動來自這本書《Android應用開發揭祕》
tomcat作爲JSP容器,可與程序進行動態互動,這是很有意思的
上面說代碼基本原封不動,那麼其中的一個改動就是http申請的鏈接地址。
原代碼中給出的地址是這樣的:http://192.168.1.110:8080/http1.jsp
書我沒看過,不太清楚爲什麼是這樣的,誰知道?請告訴我。
但是,在Ubuntu下運行的tomcat服務器和Android模擬器,要想能夠通信,那麼
Android模擬器內訪問的tomcat上的網址就不再是這個:http://localhost:8080/
爲什麼?因爲模擬器有自己的localhost,這個網址指向的是它自己的主機。
如果模擬器想要訪問Ubuntu主機,也就是tomcat服務器的網址,那麼就使用android內置的IP 10.0.2.2 吧,
10.0.2.2 是模擬器設置的特定ip,是Ubuntu主機的別名。
tomcat上要運行的兩個jsp文件如下:
http.jsp
- <html>
- <head>
- <title>My JSP 'index.jsp' starting page</title>
- </head>
- <body>
- <%
- out.println("<h1>HTTP TEST<br/>http test</h1>");
- %>
- </body>
- </html>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<%
out.println("<h1>HTTP TEST<br/>http test</h1>");
%>
</body>
</html>
httpGet.jsp
- <html>
- <head>
- <title>My JSP 'index.jsp' starting page</title>
- </head>
- <body>
- <%
- String type = request.getParameter("par");
- String result = new String(type.getBytes("iso-8859-1"),"gb2312");
- out.println("<h1>parameters:"+result+"</h1>");
- %>
- </body>
- </html>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<%
String type = request.getParameter("par");
String result = new String(type.getBytes("iso-8859-1"),"gb2312");
out.println("<h1>parameters:"+result+"</h1>");
%>
</body>
</html>
第一個文件會給出固定的輸出,而第二個文件會根據交互的參數傳遞給出相應的輸出。
現在,可以運行Android程序了,要在模擬器中跑,這樣,上面提到的訪問地址纔會有效。
運行一下,3個按鈕挨個試試,比如第2個按鈕“以GET方式傳遞數據”
結果是這樣的:
有點失望,怎麼是一堆源碼?
仔細看,裏面有一行:
- <h1>parameters:test</h1>
<h1>parameters:test</h1>
這個就是與httpGet.jsp交互的結果!注意
我的Firefox安裝了goagent + FoxyProxy,在其開啓的情況下使用tomcat沒什麼問題。