安装并使用tomcat试验Android网络程序
2014-07-31 11:11
330 查看
首先,到 这里 下载最新版本的tomcat,我下载的版本是7.0.32(Last modified 2012-10-07 18:36)
然后,解压缩
[plain]
view plaincopyprint?
$ tar zxvf apache-tomcat-7.0.8.tar.gz
运行之前,先要做一些配置工作(前提:Java我已经安装过了
)
先是查看本机的java版本:
[plain]
view plaincopyprint?
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时自动设置)
[plain]
view plaincopyprint?
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了)
[plain]
view plaincopyprint?
$ . ~/.bashrc
现在,可以执行了
[plain]
view plaincopyprint?
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目录,修改文件如下:
[plain]
view plaincopyprint?
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文件test.jsp
[plain]
view plaincopyprint?
tomxue@ubuntu:~/App/apache-tomcat-7.0.32/webapps/ROOT$ vi test.jsp
文件内容如下:
[plain]
view plaincopyprint?
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
out.print("I love jsp!");
%>
存盘退出。
在Firefox网址栏输入:http://localhost:8080/test.jsp
结果怎么样?
在Android模拟器上连接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
[plain]
view plaincopyprint?
<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
[plain]
view plaincopyprint?
<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方式传递数据”
结果是这样的:
有点失望,怎么是一堆源码?
仔细看,里面有一行:
[plain]
view plaincopyprint?
<h1>parameters:test</h1>
然后,解压缩
[plain]
view plaincopyprint?
$ tar zxvf apache-tomcat-7.0.8.tar.gz
$ tar zxvf apache-tomcat-7.0.8.tar.gz
运行之前,先要做一些配置工作(前提:Java我已经安装过了
)
先是查看本机的java版本:
[plain]
view plaincopyprint?
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时自动设置)
[plain]
view plaincopyprint?
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了)
[plain]
view plaincopyprint?
$ . ~/.bashrc
$ . ~/.bashrc
现在,可以执行了
[plain]
view plaincopyprint?
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目录,修改文件如下:
[plain]
view plaincopyprint?
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
[plain]
view plaincopyprint?
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
文件内容如下:
[plain]
view plaincopyprint?
<%@ 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
[plain]
view plaincopyprint?
<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
[plain]
view plaincopyprint?
<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方式传递数据”
结果是这样的:
有点失望,怎么是一堆源码?
仔细看,里面有一行:
[plain]
view plaincopyprint?
<h1>parameters:test</h1>
<h1>parameters:test</h1>这个就是与httpGet.jsp交互的结果!
注意
我的Firefox安装了goagent + FoxyProxy,在其开启的情况下使用tomcat没什么问题。相关文章推荐
- 安装并使用tomcat试验Android网络程序
- Android程序使用代码的安装和卸载
- 使用Android系统隐藏api 读取*.apk 程序安装包信息
- android 开发之 使用Android系统隐藏api 读取*.apk 程序安装包信息
- Android程序使用代码的安装和卸载!!!
- 在Eclipse Android中设置模拟器屏幕大小、设置网络、安装apk程序
- 使用Android系统隐藏api 读取*.apk 程序安装包信息[转]
- Android解决:使用真机调试程序时,安装程序失败
- 打开Word2003时出现“无法访问您试图使用功能所在的网络位置”请按确定重试,或在下面框中输入包含安装程序包genko.msi的文件夹的路径.
- android使用已安装程序实现分享功能
- Android程序使用代码的安装和卸载
- 解决使用 JDK 1.7 对 Android apk 签名后程序无法安装的问题
- Android程序使用代码的安装和卸载
- Linux 使用脚本安装Tomcat并部署程序
- oracle 10G 在windows下有网络情况下安装 断网或者换ip不能使用(报无监听程序或者,监听程序无法解析链接
- Android程序使用代码的安装和卸载!!!
- Android 网络应用重点———使用HttpGet 下载apk文件并安装
- Word2003时弹出这个“无法访问您试图使用功能所在的网络位置”输入包含安装程序包gaozhi.msi
- Android程序使用代码的安装和卸载
- Android使用adb指令在虚拟机中安装、卸载apk程序