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. 线形,柱形,条形数据表(百度Echart插件)

    [获取资源]进入官网,    http://echarts.baidu.com/导航,下载,下拉框下载,常用303k.就是这么简单,就个一个js.[项目使用]新建项目,MyChart具体使用的过程中, ...

  2. sql之事务和并发

    1.Transaction(事务)是什么: 事务是作为单一工作单元而执行的一系列操作.包括增删查改. 2.事务的种类: 事务分为显示事务和隐式事务: 隐式事务:就是平常我们使用每一条sql 语句就是一 ...

  3. Qt播放mp3

    .pro项目文件中加入 QT += phonon 包含头    #include <phonon/Phonon> 播放文件    Phonon::MediaObject *media = ...

  4. ios App 打包

    ios 版本的 App 打包两种方式: 1. 命令行 xcodebuild exportArchive -exportFormat ipa 2. 通过 xcode Product -> Arch ...

  5. C# Path

    http://hi.baidu.com/mayijun0410/item/4fa6c6c154a1c35ebdef69f9 using System.IO; Path类的静态方法: ChangeExt ...

  6. [转]StructLayout特性

    转自:http://www.cnblogs.com/JessieDong/archive/2009/07/21/1527553.html StructLayout特性 StructLayout特性   ...

  7. [Unity3D]支持的视频格式

    Unity3d只支持 .mov, .mpg, .mpeg, .mp4, .avi, .asf这些格式.

  8. Educational Codeforces Round 11

    A. Co-prime Array http://codeforces.com/contest/660/problem/A 题意:给出一段序列,插进一些数,使新的数列两两成互质数,求插最少的个数,并输 ...

  9. android 多个listView的向下滚动设置 listView动态设置高度代码

    墨迹天气图: 这里都是用的android里面的shape实现的,实现起来比较简单,只是在滚动的时候有点小麻烦... 当我们多个ListView超出了它的父控件LinearLayout的时候,它们每个L ...

  10. Java中获取完整的访问url

    Java中获得完整的URl字符串: HttpServletRequest httpRequest=(HttpServletRequest)request; String strBackUrl = &q ...