Java Web程序工作原理
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程序工作原理的更多相关文章
- Web程序工作原理
1.Web程序工作原理 (1)Web一词的含义 Network:[计算机]电脑网络,网 Web:[计算机]万维网(World Wide Web),互联网(Internet) Web程序,顾名思义,即工 ...
- java web后台工作原理
多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如Se ...
- 【转载】Web应用工作原理
问题描述: Web应用工作原理 问题解决: 参考资料:http://blog.csdn.net/lcore/article/details/8964642 ...
- 在Java Web程序中使用监听器可以通过以下两种方法
之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...
- Web网站工作原理解析
Web的工作原理 Web采用的是客户机--服务器架构(Client--Server model),如下图所示,其中客户端(Client)可以通过网络连接访问另一台计算机的资源或服务,而提供资源或服 ...
- Web的工作原理(二)
1.工作过程:如下图所示描述了Web的工作原理. (1) 用户打开计算机(客户机),启动浏览器程序,并在浏览器中指定一个URL(Uniform Resource Locator,统一资源定位器),浏览 ...
- web服务器工作原理
Web服务器工作原理概述 转载自http://www.importnew.com/15020.html 很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它 ...
- java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互
java gc的工作原理.如何优化GC的性能.如何和GC进行有效的交互 一个优秀的Java 程序员必须了解GC 的工作原理.如何优化GC的性能.如何和GC进行有效的交互,因为有一些应用程序对性能要求较 ...
- java Web程序使用wro4j合并、压缩js、css等静态资源
在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...
随机推荐
- python学习笔记15(面向对象编程)
虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程. 一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界 ...
- org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.chen.vo.Dept.parentId
异常描述:执行以下的addAsHaveParentId2方法出现此异常: /*-----------------------类Dept.Dept.hbm.xml有parentId属性(数据库中有此列) ...
- 团体程序设计天梯赛-练习集L1-021. 重要的话说三遍
L1-021. 重要的话说三遍 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 这道超级简单的题目没有任何输入. 你只需要把这句 ...
- 可编辑的select框的实现(实用版)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEA ...
- uva 10827
与108类似 多加了两层循环 水过 #include <iostream> #include <cstring> #include <cstdio> #includ ...
- Scala中的Extractor
Scala中使用unapply方法可以实现三种extractor(另外使用unapplySeq也可以实现extractor) def unapply(object: S): Option[(T1, . ...
- 在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly)
原地址:http://www.myexception.cn/program/1399860.html 在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly) 在MAC下调试运行暗黑世界 ...
- hdu 3032 Nim or not Nim? 博弈论
这题是Lasker’s Nim. Clearly the Sprague-Grundy function for the one-pile game satisfies g(0) = 0 and g( ...
- iOS开发的小技巧(断点打印)
iOS开发中我们会碰到这样的需求:打印沙盒目录,打印对象信息,对象信息可以通过断点查看,有时候对象属性繁多时看起来又比较麻烦. 今天学到一个比较实用的方法: 在运行时打一个断点,当程序停在这个断点后, ...
- flash 动画数据导出 到 coco2d-js ,cocos2d-x 问题的记录
1:必须搞清flash坐标系 和 cocos2d 的坐标系的差异2:对于cocos2d系列坐标系的深入理解: 以前我们常认为 coco2d-x的X,Y是相对坐标系,相对于父节点的X,Y的坐标,这种说法 ...