Servlet学习之web服务器Tomcat 详解-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Servlet学习之web服务器Tomcat 详解

简介: Web服务器是什么 Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。

 

Web服务器是什么

Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。
Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。 

在这里我只说一下Tomcat的使用和配置,如有兴趣可以自己看一下常用的web服务器

我们自己模拟一个web 服务器

Tomcat是一个很好的web服务器,它是怎么工作的呢,我们可以自己写一个简单的服务器

看一下

先写一个Html页面,我们要通过个服务器打,在IE里显示这个Html页面

<h1>Hello!<h1>

 下面开写一个简单的web服务器:

import java.io.*;
import java.net.*;

public class JavaWebService {
    public static void main(String arg[]) throws Exception
    {
        ServerSocket server=new ServerSocket(9999);
        System.out.println("等待连接.....");
        Socket socket=server.accept();
        OutputStream outStream=socket.getOutputStream();
        System.out.println("连接成功.....");
        BufferedReader bufferReader=new BufferedReader(new FileReader("D:\\Hello.html"));
        String buf="";
        while((buf=bufferReader.readLine())!=null)
        {
            outStream.write(buf.getBytes());            
        }
        bufferReader.close();
        outStream.close();
        socket.close();
        
    }
}

编译一下

在IE里运行

我们自己的web服务器在IE上显示Hello! 

 

再看一下cmd命令

 

这是一个很简单的web服务器的小例子,只是解释一下tomcat web服务器的原理。

使用TomCat

启动TomCat 是在bin目录下的startup.bat

这里要说明一下看一下自己的系统是32位的还是64位,要针对系统下不现版本的tomcat

如果启动失败

查看Log目录下的日志,看是什么问题导致服务没有打开一般情况有下边两种

1.在启动之前要先确定我的电脑 环境变量里是否已把JAVA_HOME配置好

我的是在c盘

 

也可以直接在startup.bat里

加上这个set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45

 

 

2.是不是端口被占用8081

用cmd命令netstat -anb查看是哪个程序把端口占用了

  <Connector port="8081" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

把8081端口修改一个

 

a

Tomcat 要进入Manager App和Host Manager需要权限 

 <role rolename="manager-gui"/>
  <role rolename="admin-gui"/> 
  <user username="admin" password="admin" roles="manager-gui,admin-gui"/>

 

测试Tomcat

在IE中输入http://localhost:9081/能进入说明我们的Tomcat启动成功

 

 

 

Tomcat 要进入Manager App和Host Manager需要权限 

在conf目录下的tomcat-users.xml加上

 

  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/> 
  <user username="admin" password="admin" roles="manager-gui,admin-gui"/>

重新启动一下Tomcat点击Host Manager会让输入用户名

 

TOMCAT的目录

主要说一下webapps目录和work目录

webapps目录 :在这个目录下,放置web应用

如我们放把之前的Hello.html页面放到里面

我们在webapps里建一个HelloWeb文件夹,把Hello.html放到里面,启动tomcat

在IE里输入

http://localhost:9081/HelloWeb/Hello.html

如果想不加Hello.html就显示出来可以 这个么

新建一个文建夹WEB-INF

在里边建一个web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">  

 <welcome-file-list>
    <welcome-file>Hello.html</welcome-file>
 </welcome-file-list>
</web-app>

 再在IE里输入

http://localhost:9081/HelloWeb/

也会看到这个页面

work目录

用于存放jsp对应的servlet文件和.class文件

这个图是我在eclipse里写的一个jsp页面

它对应的servlet是

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章