安装并使用tomcat试验Android网络程序

来源:互联网 发布:多视角目标检测算法 编辑:程序博客网 时间:2024/06/16 13:10

首先,到 这里 下载最新版本的tomcat,我下载的版本是7.0.32(Last modified 2012-10-07 18:36)


然后,解压缩

[plain] view plaincopyprint?
  1. $ tar zxvf apache-tomcat-7.0.8.tar.gz 

运行之前,先要做一些配置工作(前提:Java我已经安装过了吐舌头

先是查看本机的java版本:

[plain] view plaincopyprint?
  1. tomxue@ubuntu:~/App$ java -version 
  2. java version "1.6.0_06" 
  3. Java(TM) SE Runtime Environment (build 1.6.0_06-b02) 
  4. Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing) 
  5.  
  6. tomxue@ubuntu:~/App$ sudo update-alternatives --config java 
  7. There are 4 choices for the alternative java (providing /usr/bin/java). 
  8.  
  9.   Selection    Path                                           Priority   Status 
  10. ------------------------------------------------------------ 
  11.   0            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      auto mode 
  12.   1            /usr/bin/gij-4.6                                1046      manual mode 
  13.   2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode 
  14. * 3            /usr/lib/jvm/java-6-sun/jre/bin/java            63        manual mode 
  15.   4            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode 
  16.  
  17. Press enter to keep the current choice[*], or type selection number:  

然后设置环境变量:

在~/.bashrc文件中加入下列语句,以设置相应的环境变量(会在每次开启bash时自动设置)

[plain] view plaincopyprint?
  1. export JAVA_HOME="/usr/lib/jvm/java-6-sun/" 
  2. export CLASSPATH="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar" 

存盘退出,再执行一次刚才的设置(这次就省点儿事,先不退出bash了)

[plain] view plaincopyprint?
  1. $ . ~/.bashrc 

现在,可以执行了

[plain] view plaincopyprint?
  1. tomxue@ubuntu:~/App/apache-tomcat-7.0.32/bin$ ./startup.sh  
  2. Using CATALINA_BASE:   /home/tomxue/App/apache-tomcat-7.0.32 
  3. Using CATALINA_HOME:   /home/tomxue/App/apache-tomcat-7.0.32 
  4. Using CATALINA_TMPDIR: /home/tomxue/App/apache-tomcat-7.0.32/temp 
  5. Using JRE_HOME:        /usr/lib/jvm/java-6-sun/ 
  6. 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?
  1. ubuntu:~/App/apache-tomcat-7.0.32/conf$ cat tomcat-users.xml  
  2. <?xml version='1.0' encoding='utf-8'?> 
  3.  
  4. <tomcat-users> 
  5. <!-- 
  6.   <role rolename="tomcat"/> 
  7.   <role rolename="role1"/> 
  8.   <user username="tomcat" password="tomcat" roles="tomcat"/> 
  9.   <user username="both" password="tomcat" roles="tomcat,role1"/> 
  10.   <user username="role1" password="tomcat" roles="role1"/> 
  11. --> 
  12.  
  13. <role rolename="manager-gui"/> 
  14. <user username="tomcat" password="tomcat" roles="manager-gui"/> 
  15. </tomcat-users> 

那么,只需要输入账号和密码均为tomcat即可,现在再点击"Server Status",呈现出的页面如下:



jsp试验


接下来,可以试试服务器端的jsp执行了。

进入下面的路径并创建jsp文件test.jsp

[plain] view plaincopyprint?
  1. tomxue@ubuntu:~/App/apache-tomcat-7.0.32/webapps/ROOT$ vi test.jsp 

文件内容如下:

[plain] view plaincopyprint?
  1. <%@ page language="java" contentType="text/html;charset=gb2312"%> 
  2. <% 
  3. out.print("I love jsp!"); 
  4. %> 

存盘退出。

在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?
  1. <html>   
  2.   <head>    
  3.     <title>My JSP 'index.jsp' starting page</title>   
  4.   </head>   
  5.   <body>   
  6.     <%   
  7.         out.println("<h1>HTTP TEST<br/>http test</h1>");   
  8.      %>   
  9.   </body>   
  10. </html>   

httpGet.jsp

[plain] view plaincopyprint?
  1. <html> 
  2.   <head> 
  3.     <title>My JSP 'index.jsp' starting page</title> 
  4.   </head>  
  5.   <body> 
  6.     <% 
  7.         String type = request.getParameter("par"); 
  8.         String result = new String(type.getBytes("iso-8859-1"),"gb2312"); 
  9.         out.println("<h1>parameters:"+result+"</h1>"); 
  10.      %> 
  11.   </body> 
  12. </html> 

第一个文件会给出固定的输出,而第二个文件会根据交互的参数传递给出相应的输出。


现在,可以运行Android程序了,要在模拟器中跑,这样,上面提到的访问地址才会有效。

运行一下,3个按钮挨个试试,比如第2个按钮“以GET方式传递数据”


结果是这样的:


有点失望,怎么是一堆源码?

仔细看,里面有一行:

[plain] view plaincopyprint?
  1. <h1>parameters:test</h1> 
这个就是与httpGet.jsp交互的结果!





注意


我的Firefox安装了goagent + FoxyProxy,在其开启的情况下使用tomcat没什么问题。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 总统任期到后不卸任怎么办 下水管声音大怎么办 水管水流声音大怎么办 空调水管声音大怎么办 邻居水管声音大怎么办 晚上水管一直响怎么办 被棘冠海星刺到怎么办 家里突然水压小怎么办 自来水出水量小怎么办 开水龙头水管响怎么办? 海里游泳遇到暗流怎么办 网站运营权出问题怎么办 在澳门超期出关怎么办 妹妹初中毕业谈恋爱怎么办 原告的证据造假怎么办 慕课考试不及格怎么办 大学高数不及格怎么办 对方拒绝司法调解怎么办? cas授权已过期怎么办 英法巡航南海中国怎么办 wps文件不能改怎么办 wps不能删除内容怎么办 word文件被锁定怎么办 word批注不显示怎么办 wps怎么办把修订取消 审阅密码忘了怎么办 psv关机后怎么办刷 被螃蟹扎了怎么办 被海鲜划伤出血怎么办 海域使用证缴纳金没交怎么办 海峡中线 金门海域怎么办 对工作失去热情怎么办 取款机多出钱怎么办 风扇声音很响怎么办 稳压器输出没电怎么办 稳压器不稳10压怎么办 dnf凯蒂不见了怎么办 马桶里掉进塑料瓶盖怎么办 塑料瓶子盖子打不开怎么办 按压瓶盖坏了怎么办 瓶盖拧错位了怎么办