搭建简单的Web服务器



《搭建简单的Web服务器》由会员分享,可在线阅读,更多相关《搭建简单的Web服务器(42页珍藏版)》请在装配图网上搜索。
1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,Click to edit Master text style
2、s,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,搭建一个简单的服
3、务器,贝毅君,浙江大学软件学院,主要内容,Tomcat,总体结构,HTTP,请求与响应,Socket,与,ServerSocket,搭建简单的,web,服务器,Tomcat,是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的组件是,Catalina Servlet,容器,其他的组件按照一定的格式要求配置在这个顶层容器中。,Tomcat,简介,Tomcat,简介,/bin,:存放,windows,或,Linux,平台上启动和关闭,Tomcat,的脚本文件,/conf,:存放,Tomcat,服务器的各种全局配置文件,其中最重要的是,server.xml,和,web.xml,/doc,:
4、存放,Tomcat,文档,/server,:包含三个子目录:,classes,、,lib,和,webapps,/server/lib,:存放,Tomcat,服务器所需的各种,JAR,文件,Tomca,t,简介,-,目录结构,/server/webapps,:存放,Tomcat,自带的两个,WEB,应用,admin,应用和,manager,应用,/common/lib,:存放,Tomcat,服务器以及所有,web,应用都可以访问的,jar,文件,/shared/lib,:存放所有,web,应用都可以访问的,jar,文件(但是不能被,Tomcat,服务器访问),/logs,:存放,Tomcat,执
5、行时的日志文件,Tomcat,简介,-,目录结构,/src,:存放,Tomcat,的源代码,/work,:存放,JSP,产生的,servlet,文件,/webapps,:,Tomcat,的主要,Web,发布目录,默认情况下把,Web,应用文件放于此目录,/helloapp,:,Web,应用的根目录,所有的,jsp,文件和,html,文件都在此目录下,/helloapp/WEB_INF,:存放该,web,应用发布时的描述文件,web.xml,/helloapp/WEB_INF/class,:存放各种,class,文件,,Servlet,文件也存放于此目录下,/helloapp/WEB_INF/l
6、ib,:存放各钟,Web,应用所需要的,jar,文件。比如可以存放,JDBC,驱动程序的,JAR,文件,Tomcat,简介,-,目录结构,以,helloapp,应用为例,helloapp,(,/webapps/helloapp/Web-INF/,下的,classes,,,lib,子目录中*,.calss,及*,.jar,,仅,helloapp,可以加载),Bootstrap,(,$JAVA_HOME/jre/lib/ext/*.jar,),System,(,$CLASSPATH/*.class,和,CLASSPATH,中指定的,jar,),Tomcat,简介,加载资源顺序,Common,(,$
7、CATALINA_HOME/common/,下的,classes,,,lib,,,endores,子目录中*,.class,及*,.jar,),Catalina,(,$CATALINA_HOME/server/,下的,classes,,,lib,子目录中*,.calss,及*,.jar,,仅,Tomcat,可以加载),Shared,(,$CATALINA_HOME/shared/,下的,classes,,,lib,子目录中*,.calss,及*,.jar,,仅所有,Web,应用可以加载),Tomcat,简介,加载资源顺序,Tomcat,总体结构,Tomcat,的各个组件是在,conf serv
8、er.xml,文件中配置的,下面通过分析,server.xml,文件来理解,Tomcat,的各个组件是如何组织的。,Tomcat,总体结构,Tomcat,简介,Server,组件对应,元素,它是配置文件的最顶层元素,代表一个服务器。一个配置文件中只能有一个,元素。,Service,组件是一些,Connector,组件的集合,它本身不是一个容器。一个,Service,组件中只能有一个,Engine,组件,可以包含多个,Connector,组件。,Connector,组件表示一个接口,通过这个接口接收客户的请求,然户发送给其他的容器组件,最后再把服务器的响应结果传递给客户。,容器类元素:为特定的虚
9、拟主机处理所有客户请求,可包含多个,Context,容器类元素:为特定的,Service,组件处理所有客户请求,可包含多个,Host,。,容器类元素:为特定的,Web,应用处理所有客户请求,Tomcat,总体结构,Server:,一个,Server,代表整个,Catalina Servlet,容器。,Service,:,由多个,Connector,组成,以及一个,Engine,,处理所有,Connector,所获得的客户请求。,Tomcat,总体结构,基本组件,Connector:,一个,Connector,将在某个指定端口上侦听客户请求,并将获得的请求交给,Engine,来处理,从,Engi
10、ne,处获得回应并返回客户。,TOMCAT,有两个典型的,Connector,Coyote Http/1.1 Connector,在端口,8080,处侦听来自客户,browser,的,http,请求,Coyote JK2 Connector,在端口,8009,处侦听来自其它,WebServer(Apache),的,servlet/jsp,代理请求,Tomcat,总体结构,基本组件,Engine:E,ngine,下可以配置多个虚拟主机,Virtual Host,,每个虚拟主机都有一个域名。,当,Engine,获得一个请求时,它把该请求匹配到某个,Host,上,然后把该请求交给该,Host,来处理
11、,Engine,有一个默认虚拟主机,当请求无法匹配到任何一个,Host,上的时候,将交给该默认,Host,来处理。,Tomcat,总体结构,基本组件,Host,:代表一个,Virtual Host,,虚拟主机,每个虚拟主机和某个网络域名,Domain Name,相匹配每个虚拟主机下都可以部署,(deploy),一个或者多个,Web App,,每个,Web App,对应于一个,Context,,有一个,Context path,当,Host,获得一个请求时,将把该请求匹配到某个,Context,上,然后把该请求交给该,Context,来处理匹配的方法是“最长匹配”,所以一,path=,的,Con
12、text,将成为该,Host,的默认,Context,所有无法和其它,Context,的路径名匹配的请求都将最终和该默认,Context,匹配,Tomcat,总体结构,基本组件,Context:,一个,Context,对应于一个,Web Application,,一个,Web Application,由一个或者多个,Servlet,组成。,Context,在创建的时候将根据配置文件,$CATALINA_HOME/conf/web.xml,和,$WEBAPP_HOME/WEB-INF/web.xml,载入,Servlet,类。当,Context,获得请求时,将在自己的映射表,(mapping t
13、able),中寻找相匹配的,Servlet,类如果找到,则执行该类,获得请求的回应,并返回。,Tomcat,总体结构,基本组件,假设来自客户的请求为:,http:/localhost:8080/wsota/wsota_index.jsp,请求被发送到本机端口,8080,,被在那里侦听的,Coyote HTTP/1.1 Connector,获得,Connector,把该请求交给它所在的,Service,的,Engine,来处理,并等待来自,Engine,的回应,Engine,获得请求,localhost/wsota/wsota_index.jsp,,匹配它所拥有的所有虚拟主机,Host,Tomc
14、at,处理,Http,请求过程,Engine,匹配到名为,localhost,的,Host,(即使匹配不到也把请求交给该,Host,处理,因为该,Host,被定义为该,Engine,的默认主机),localhost Host,获得请求,/wsota/wsota_index.jsp,,匹配它所拥有的所有,Context,Host,匹配到路径为,/wsota,的,Context,(如果匹配不到就把该请求交给路径名为,的,Context,去处理),Tomcat,处理一个,Http,请求过程,path=/wsota,的,Context,获得请求,/wsota_index.jsp,,在它的,mappin
15、g table,中寻找对应的,servlet,Context,匹配到,URL PATTERN,为*,.jsp,的,servlet,,对应于,JspServlet,类,构造,HttpServletRequest,对象和,HttpServletResponse,对象,作为参数调用,JspServlet,的,doGet,或,doPost,方法,Tomcat,处理一个,Http,请求过程,Context,把执行完了之后的,HttpServletResponse,对象返回给,Host,Host,把,HttpServletResponse,对象返回给,Engine,Engine,把,HttpServlet
16、Response,对象返回给,Connector,Connector,把,HttpServletResponse,对象返回给客户,browser,Tomcat,处理一个,Http,请求过程,Servlet,容器是一个复杂的系统,对每个请求,,servlet,容器会为其完成以下,3,个操作:,创建一个,request,对象,用可能会调用的,Servlet,中使用的信息填充该,request,对象,如参数、头、,cookie,、查询字符串、,URI,等。,创建一个调用,Servlet,的,response,对象,用来向,Web,客户端发送响应。,调用,Servlet,的,service(),方法,将,request,对象和,response,对象作为参数传入。,Servlet,从,requset,对象中读取信息,并通过,response,对象发送响应信息。,Tomcat,总体结构,servlet,容器是如何工作的,Tomcat,总体结构,Catalina,Catalina,是一个设计和开发得十分优美,功能结构也模块化的成熟软件。,Catalina,是,Tomcat,的核心结构。,连接器负责
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。