1、计算机第一阶段图例:操作系统操作系统应用 第三方应用 驱动程序 操作系统的 API BIOS 固件硬件 处理器 输入、输出存储器 控制器 运算器文化、理论科学文化传统 计算机理论 电子技术 工业技术应用系统 银行 电信 政府 办公 游戏 门户网站 系统软件 数据库Web Server 交易中间件 ESB开发工具 计算机第二阶段图例:【实现步骤】A、B 两台机器通过 socket 连接(应用程序通过 OS 提供的通讯手段将不同地理位置的两台机子连接起来) 。、B发送请求获得文件(例如:获取helloWorld.doc文件) 。、A接收到请求后、进行解析,查找文件helloWorld.doc。、如
2、果文件存在A发送helloWorld.doc文件到数据通道上, 、如果没有找到文件,则进行错误处理(例如:发送not found信息) 。、A发送处理结果。、B接收处理结果,如果收到的是文件信息则将文件保存。服务器 客户端socketDisk Disk display异常处理Not foundLock错误信息文件getFiledoService计算机第三阶段图例:Tomcat 服务器【具体步骤】前期:(初始化基本配置)1 .ie 发送 HTTP请求(http:/localhost:8080/web/Runtime.jsp),进入主线程。2 .启动线程池,调出线程池里面空闲的工作线程,把 808
3、0端口传来的 http协议封装的数据解析成 Request和 Response对象。3 .使用 Http11processer(org.apache.coyote.http11.Http11Processor )来处理 Request,call CoyoteAdatpter 进行适配处理,把Request适配成实现了 ServletRequest和 HttpServletRequest接口的 CoyoteRequest。把 Request适配成实现了 ServletResponse和 HttpServletResponse接口的 CoyoteResponse。中期:(各容器间的穿梭)4 .验证
4、传来的 Request是否是 HttpServletRequest,是否携带了 host header信息,选择相应的host(localhost/127.0.0.1) , 确定哪个 Context来处理,其实就是 webapp(web) ,过滤 Request,判断到底是JSP、Servlet 还是静态资源来决定最终用哪种 Wrapper(包裹器)来处理这个 Request。交给那个 Wrapper来处理。末期:(不同需求的处理)5 .如果是 JSP文件(org.apache.jsper.servlet.JspServlet )(Runtime.jsp),先把 JSP生成 Servlet(R
5、untime_jsp.java)。6 .再编译成 class文件(Runtime_jsp.class) 。7 .由 java虚拟机调用其 Service( )方法,得到处理结果。8 .将响应结果返回,若不存在 JSP文件返回 404错误。9 .如果是 Servlet文件(org.apache.catalina.servlets.InvokerServlet) ,就调用具体的 Servlet的 Service( )方法,得到处理结果并 返回。10 .如果是静态资源文件(org.apache.jsper.servlets.DefultServlet) ,就直接在硬盘查找静态资源,取出内容,得到处理
6、结果。11 .将处理结果返回,若找不到静态资源文件返回没有匹配的项。12 .如果是自定义的资源文件类型,就调用自定义框架的配置和服务进行处理,得到处理结果。13 .得到以上 3中情况的响应结果,封装在 CoyoteResponse中。14 .将 CoyoteResponse适配转化为 http协议的 Response对象的响应结果。15 .把响应结果 Response对象返回给当前工作线程。16 .将响应结果 Response返回给 ie,并将工作线程返回给线程池,处理结束。IE Tomcat (Servlet 容器)线程池 CoyoteAdapterCoyoteRequest.Html404
7、自定义类型(可扩展) JSP (JspServlet)Servelt(Invoker)静态资源 (Default)ServletRuntime_jsp.javaRuntime_jsp.class1URL: http:/localhost:8080/web/Runtime.jsp2 3 4 5 6 7Service( ) 8 9JVMLockNot found资源文件101112131415PCRuntime.jspCoyoteAdapterCoyoteResponseDiskhttp静态页面 .html/.js音频文件 .mid/.au视频文件 .avi图形文件 .gif/.jpg自定义框架Config+ServiceRequestResponse16.do、.action