Web开发的最重要的基本功能是HTTP;Java Web开发的最重要的基本功是Servlet Specification。HTTP和Servlet Specitication对于Web Server和Web Framework的开发实现来说,是至关重要的协议规范。

1 Java Web程序工作原理

Tomcat的Server.xml文件中定义了网络请求路径到主机本地文件路径的映射。比如,<context path="yourapp" docBase="yourapp_dir/webapp">

比如智能的:<Context path="" docBase="/opt/web/zhineng_show_zhineng/webapps" crossContext="true" allowLinking="true" reloadable="false" maxPostSize="2048">

一个HTTP Requst-Response Cycle的处理过程如下:

HTTP Request URL一般分为三段,host,context,path。如:http://yourhost/yourapp/en/index.html这个url。其中,Context 部分由request.getContext()获得,path部分由request.getServeletPath()获得(返回结果是"/en/index.html").

yourhost主机上运行的Tomcat Web Server接收到这个URL,根据Context定义,把yourapp这个网络路径映射到yourapp_dir/webapp,并在此目录下定位en/index.html这个文件,返回到客户端。

如果这个url为http://yourhost/yourapp/en/index.jsp,Tomcat会试图把yourapp_dir/webapp/en/index.jsp文件编译成Servlet,并调用运行这个Servlet。

2 Sprint MVC

结构最清晰的MVC Model 2实现

Action准确的叫做Controller;controller接受request,response参数,干脆利落的返回ModelAndView(其中的Model不是Object类型,而是Map类型)。其他的Web Framework中,Action返回值一般都只是一个View Name;Model则需要通过其他的途径传递(如request.attribute,context参数,或Action本身的属性数据)

MVC同时提供了对HTML CSS和JavaScript的完全控制。

Model是应用程序中用于处理应用程序数据逻辑的部分,通常模型对性负责在数据库中存取数据;View是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的;Controller控制器是应用程序中处理用户交互的部分,通常负责从视图读取数据,控制用户输入,并向模型发送数据。

视图:

是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,包括Adobe Flash和像XHTML,XML/XSL,WML等一些标识语言和Web Service。

三 Web服务

Web服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以相互操作。

而Web站点就是我们平时所做的网站。Web服务(Web Service)是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。

  Web 服务是一种新的重要的应用程序。Web 服务是一段可以用 XML 发现、描述和访问的代码。在这一领域有许多活动,但有三种主要的用于 Web 服务的 XML 标准:

  SOAP:最初是简单对象访问协议(Simple Object Access Protocol),SOAP 定义一个 XML 文档格式,该格式描述如何调用一段远程代码的方法。我的应用程序创建一个描述我希望调用的方法的 XML 文档,并传递给它所有必需的参数,然后应用程序通过网络将该 XML 文档发送给那段代码。代码接收 XML 文档、解释它、调用我请求的方法,然后发回一个描述结果的 XML 文档。SOAP 规范版本 1.1 位于 w3.org/TR/SOAP/。请访问 w3.org/TR/ 以了解 W3C 中 SOAP 相关的所有活动。

  WSDL:Web 服务描述语言(Web Services Description Language)是一个描述 Web 服务的 XML 词汇表。编写一段接收 WSDL 文档然后调用其以前从未用过的 Web 服务的代码,这是可能的。WSDL 文件中的信息定义 Web 服务的名称、它的方法的名称、这些方法的参数和其它详细信息。您可以在 w3.org/TR/wsdl(结尾没有斜杠符号)找到最新的 WSDL 规范。

感觉是项目中web站点所依赖的一个个jar包,在这些个jar包里实现了各个功能。

类似于对外的是一个web站点=一个网页,网页的去调用scf和web service来完成web页面的整合。

												

Java Web程序工作原理的更多相关文章

  1. Web程序工作原理

    1.Web程序工作原理 (1)Web一词的含义 Network:[计算机]电脑网络,网 Web:[计算机]万维网(World Wide Web),互联网(Internet) Web程序,顾名思义,即工 ...

  2. java web后台工作原理

    多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如Se ...

  3. 【转载】Web应用工作原理

    问题描述:           Web应用工作原理   问题解决:          参考资料:http://blog.csdn.net/lcore/article/details/8964642   ...

  4. 在Java Web程序中使用监听器可以通过以下两种方法

    之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...

  5. Web网站工作原理解析

    Web的工作原理   Web采用的是客户机--服务器架构(Client--Server model),如下图所示,其中客户端(Client)可以通过网络连接访问另一台计算机的资源或服务,而提供资源或服 ...

  6. Web的工作原理(二)

    1.工作过程:如下图所示描述了Web的工作原理. (1) 用户打开计算机(客户机),启动浏览器程序,并在浏览器中指定一个URL(Uniform Resource Locator,统一资源定位器),浏览 ...

  7. web服务器工作原理

    Web服务器工作原理概述 转载自http://www.importnew.com/15020.html 很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它 ...

  8. java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互

    java gc的工作原理.如何优化GC的性能.如何和GC进行有效的交互 一个优秀的Java 程序员必须了解GC 的工作原理.如何优化GC的性能.如何和GC进行有效的交互,因为有一些应用程序对性能要求较 ...

  9. java Web程序使用wro4j合并、压缩js、css等静态资源

    在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...

随机推荐

  1. 如何循环遍历document.querySelectorAll()方法返回的结果

    使用JavaScript的forEach方法,我们可以轻松的循环一个数组,但如果你认为document.querySelectorAll()方法返回的应该是个数组,而使用forEach循环它: /* ...

  2. 原生js获取window高和宽

    视口的宽和高 var pw = window.innerWidth, ph = window.innerHeight; if(typeof pw != "number"){ pw ...

  3. LDPY Ghost Win7 64位 纯净自选版 V5.0

    ★ 概述: ☆ 源安装盘是[Windows7_SP1_ULTIMATE]微软官方SP1正式版. ☆ 破解激活WIN7,补丁更新至2013/06/18所有系统安全关键补丁. ☆ 破解 Windows 7 ...

  4. 手工、工具分别实现cookie注入

    最开始的判断access类型的网站注入点可以用“1 and 1=1”来判断. 不过现在的网站基本上被挡住了.之后呢,可以考虑cookie注入. Dim Tc_Post,Tc_Get,Tc_In,Tc_ ...

  5. HDU4647+贪心

    /* 贪心. 题意:给定一些点 一些边 点和边都有价值.现在A B 选点.求A-B的maxVal 思路:分割边.边的1/2分给两个端点. 如果这两个点被同一个人取,则ok:否则 做减法也行,对题意无影 ...

  6. 深入剖析Classloader(一)--类的主动使用与被动使用

    原文地址:http://yhjhappy234.blog.163.com/blog/static/3163283220115573911607 我们知道java运行的是这样的,首先java编译器将我们 ...

  7. 李洪强iOS开发之XMPP

      XMPP历史 这个xmpp框架在2008年开始,不过是一个简单地RFC实现.提供一个最小的代理去接受三种xmpp的基本类型presence.message.iq.因为framwork只提供了最小的 ...

  8. python之高性能网络编程并发框架eventlet实例

    http://blog.csdn.net/mingzznet/article/details/38388299 前言: 虽然 eventlet 封装成了非常类似标准线程库的形式,但线程和eventle ...

  9. nginx几个知识点汇总

    WHY? 为什么用Nginx而不用LVS? 7点理由足以说明一切:1 .高并发连接: 官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 2 - 3 万并发连接数.?2 .内存消耗少: 在 3 万 ...

  10. live555源码研究(五)------DynamicRTSPServer类

    一.类DynamicRTSPServer作用 1,提供RTSP服务 二.类DynamicRTSPServer继承关系图