首先简单介绍一下tomcat,tomcat是一个轻量级web服务器,一般用于响应一个HTML请求,实际上是运行jsp和servlet页面,在这之前要对运行tomcat的机器上要进行正确的配置,不过其只适合于中小型系统或访问用户不是很多的场合,当用户通过浏览器输入配置好的URL后便可访问tomcat下的资源文件。
由于本人在编写一个android APP时需要使用HTTP协议下载几个文件,所以直接在个人主机上开了一个tomcat服务器,将所有需要下载的文件放在一个web工程下用于访问下载。
下载
在Apache Tomcat官网下载tomcat.zip文件,版本和jdk版本一致,下载后解压,然后配置JAVA_HOME环境变量,然后双击bin目录下的startup.bat文件打开tomcat,最后在浏览器地址栏输入http://localhost:8080进行测试,正确应显示默认的toncat主页
配置
在webapps目录下新建一个项目,把所有的文件放在其中,在这个项目下再新建一个WEB-INF文件夹,文件夹中新建一个web.xml文件,WEB-INF下的文件是不能在浏览器上直接访问的,web.xml是一个web程序配置文件,其中描述了servlet和其他应用组件配置及命名规则。
然后打开conf/server.xml主配置文件,其中有很多元素,在这里主要讲一下Host和Context,Host指一个虚拟主机,可包含多个Context,Context指上下文内容,为Host上运行的一个web应用。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="mp3"
reloadable="true" debug="0"/>
</Host>
(1)name指主机名,可任意命名;
(2)appBase指虚拟主机的目录,可以为绝对路径,也可为CATALINA_HOME(环境变量路经)的相对路经,默认为CATALINA_HOME/webapps;
(3)unpackWARs如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件;
(4)autoDeploy如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用;
(5)path指映像目录,映像到docBase的物理地址,“/test”指定URL入口,“ ”指默认入口为虚拟根目录,即webapps/ROOT;
(6)docBase指实际项目的物理地址,存在任一磁盘中,可为绝对路径,也可为appBase的相对路径。
(7)reloadable如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用。
最后还要在Connector元素下配置好port属性,即端口号,默认为8080,事先可在命令行中查看端口是否被占用,输入netstat-aon|findstr “8080”命令,如果没有显示则为空闲状态
我新建了一个web项目mp3,下面放了几个不同类型的文件用于下载
现在在浏览器输入“http://loclahost:8080/test/01.lrc”配置成功的结果应如下:
补充说明
由于本人使用HTTP下载时要传入相应的URL,但android模拟器上访问本机服务器时需要更改ip,因为模拟器把自己作为localhost,访问主机等于访问模拟器自己,使用android内置的ip:10.0.2.2即可访问到服务器。