TomCat服务器应用基础

来源:互联网 发布:淘宝优站官网 编辑:程序博客网 时间:2024/06/08 06:01
</pre>Tomcat是Apache基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是7.0。<p><span style="font-family:arial,宋体,sans-serif; font-size:14px; line-height:16.66666603088379px; text-indent:30px"></span></p><p><span style="font-family:arial,宋体,sans-serif; font-size:14px; line-height:16.66666603088379px; text-indent:30px">      TomCat可以在其官方网站上直接下载,是一个绿色免安装的软件,官方地址为:http://tomcat.apache.org/</span></p><p><span style="font-family:arial,宋体,sans-serif; font-size:14px; line-height:16.66666603088379px; text-indent:30px">      本文是基于apache-tomcat-6.0.36-windows-x86版本(32位操作系统)</span></p><p><span style="font-family:arial,宋体,sans-serif; font-size:14px; line-height:16.66666603088379px; text-indent:30px">       </span></p><p><span style="font-family:arial,宋体,sans-serif; font-size:14px; line-height:16.66666603088379px; text-indent:30px">        首先将下载的TomCat文件解压,然后在apache-tomcat-6.0.36-windows-x86\apache-tomcat-6.0.36\bin目录下可以找到一个startup.bat</span></p><p style="text-indent:30px"><span style="font-family:arial,宋体,sans-serif"><span style="font-size:14px; line-height:16.65625px">的批处理文件,双击打开,即可出现TomCat的服务器启动界面,初次启动的时间稍微长一些;</span></span></p><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><p style="text-indent:30px"><span style="font-family:arial,宋体,sans-serif"><span style="font-size:14px; line-height:16.65625px"><img src="" alt="" /></span></span></p><pre id="best-content-600874250" class="best-text mb-10" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; margin-top: 0px; margin-bottom: 10px; padding: 0px; font-family: arial, 'courier new', courier, 宋体, monospace; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(255, 252, 246);"><img src="http://img.my.csdn.net/uploads/201303/22/1363945189_4216.png" alt="" />


                                                           Tomcat服务器启动界面

            从界面中,我们看到服务器的版本号等相关信息,关键是我们可以看到这个TomCat服务所提供的http服务端口,如图示为:8080

            接下来,我们可以通过浏览器输入服务器所在的ip地址和端口来访问这个服务器:因为服务器现在是在本地主机上建立的,所以通过127.0.0.1:8080端口或者localhost:8080均可以访问到,连接上服务器后,浏览器会显示如下界面,该界面就是从服务器端给浏览器客户端发送的数据;



                       回想当我们平时通过浏览器输入一个网址,就可以访问相应的网站的情景,这里,当我们连接上TomCat服务器时,也给我们返回了一个界面,于是不禁要问,浏览器到底给服务器发送了什么数据呢,

                      在这里,我们可以模拟一个服务器,捕获当浏览器来访时,建立连接后给服务器发送的数据内容,核心代码如下:

     public static void main(String[] args) throws IOException {

    ServerSocket ss=new ServerSocket(9009);

    Socket s=ss.accept();

     InputStream in=s.getInputStream();

    PrintWriter out=new PrintWriter(s.getOutputStream());

    byte []buf=new byte[1024];

    int len=0;

   len=in.read(buf);

   System.out.println(new String(buf,0,len));  //显示客户端浏览器发来的数据,这里预设buf的容量足够大了。

   out.println("<font color='red' size='7'> 客户端你好</font>");
s.shutdownOutput(); //注意 这里一定要给客户端写入结束标志,或者直接关掉socket也可以,

}

                         运行以上服务端程序,然后通过浏览器输入该服务器的IP和端口(http://localhost:9009/)去访问,结果如下:

                         浏览器端显示界面:

    服务器端获取的浏览器请求消息头数据:

GET / HTTP/1.1

Host: localhost:9009

Connection: keep-alive

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22

Accept-Encoding: gzip,deflate,sdch

Accept-Language: zh-CN,zh;q=0.8

Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3


       通过运行以上例子,便开始了关于学习TomCat服务器的第一步,下面对服务器端获得的浏览器发送过来的数据简单的注释一下:

GET / HTTP/1.1  //命令请求方式,并表示

Host: localhost:9009 //服务器IP和端口

Connection: keep-alive //连接状态:存活

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 //告诉服务器浏览器支持的格式

User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22   //浏览器信息

Accept-Encoding: gzip,deflate,sdch//支持带压缩的数据传输

Accept-Language: zh-CN,zh;q=0.8//支持中文

Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3.//默认编码为GBK

             现在知道了浏览器想服务器发送的数据(不同浏览器发送的数据内容有所不同),那么接下来我们可以来模拟一个浏览器客户端,然后去服务器,看看能否向服务器发起请求,核心代码如下:

              public static void main(String[] args) throws IOException {

Socket s= new Socket("127.0.0.1",8080);  //建立socket连接,指向本机的TomCat服务器

BufferedReader bfr =new BufferedReader(new InputStreamReader(s.getInputStream()));获取socket输入流

PrintWriter pw=new PrintWriter(s.getOutputStream(),true);//获取socket输出流,


pw.println("GET /myweb/mywebdemo.html   HTTP/1.1"); //向服务器发送请求,注意get命令后面跟的是请求获取的文件地址,myweb文件夹位置位于TomCat根目录下的wedapps目录下,mywebdemo.html 

//pw.println("Accept: */*");

pw.println("Connection: keep-alive");  //让客户端连接保持存活,如果是将alive改为close则执行完请求就自动关闭连接

pw.println("Host: localhost:8080");  //服务器地址不能少

pw.println("Accept-Encoding: gzip,deflate,sdch");

pw.println("Accept-Language: zh-CN,zh;q=0.8");

pw.println("Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3");

pw.println();  //打印空行,这是浏览器请求消息头的格式,把请求指令和正文隔开;

String line=null;

while((line=bfr.readLine())!=null){

System.out.println(line);//显示从服务器端获取的数据‘

}

s.close()

}


开启TomCat服务,然后运行以上程序,在客户端的运行结果如下:

                      

       

对返回的数据注释如下:

HTTP/1.1 200 OK             //  绿色部分为TomCat服务器返回的应答消息头,200 表示响应状态吗,表示成功OK

Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"169-1363933632628"
Last-Modified: Fri, 22 Mar 2013 06:27:12 GMT  //表示文件什么时候被修改,操作
Content-Type: text/html  //表示文本类型
Content-Length: 169   //表示文本大小
Date: Fri, 22 Mar 2013 09:01:45 GMT
Connection: close      //连接状态



<html>                          //紫色部分表示读取的文件mywebdemo.html 的内容


<body>
<h1>这是我的主页</h1>
<font size=5 color=red>欢迎光临</font>
<div>
                    相信自己,相信未来<\br>


</div>
</body>
</html>

来面通过浏览器来实现同样的请求,界面如下:

 

小结:

           Tomcat服务器是一个基于java写的开源服务软件,浏览器访问服务器的时候会向服务器发送一个请求消息头,而服务器在收到请求以后,也会返回一个应答消息头,对于服务器和浏览器,本质上都是几乎socket网络连接的软件。

           域名解析:域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站一种服务。域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。域名解析机制会先从本地找域名和IP的映射,,本地主机域名映射可以再windows--system32-drivers-etc-hosts文件中配置;

原创粉丝点击