HTTP适配层

一、JSP和Servlet

1.JSP和Servlet是J2EE的规范的两个基本成员,也是Java Web开发的重点。JSP通过在标准的html页面嵌入Java代码构成,本质也是Servlet。Servlet是个特殊的Java类,用来响应客户端的请求,一般都是继承HttpServlet类。

2.Servlet类提供了不同的方法,用于响应客户端请求,通常需要覆盖doGet和doPost方法,init和destory方法是初始化和销毁Servlet资源时,需要重写的方法。

3.web.xml文件为配置描述符文件,在Servlet2.5规范之前为必须包含的文件。web.xml配置了项目启动时加载的信息,比如配置参数,配置你的监听器,配置过滤器,配置你的servlet实现。在启动web项目时,web容器首先会读取web.xml里的配置,然后成功启动。

二、Servlet入口

1.MainServlet类为servlet的入口类,继承了HttpServlet类。它负责拦截所有以.do结尾的URL请求。

2.在web.xml配置文件中,类似下面的配置:


DispatcherServlet

com.cn.spring.http.servlet.MainServlet



DispatcherServlet
*.do

3.servlet配置中,也可以定制初始化参数,例如:


param
value

上面的参数,可以在servlet中,调用getServletConfig().getInitParameter("param")方法,获得参数名对应的值。

三、容器初始化

1.在Servlet的生命周期中,init()方法在服务器装入Servlet时执行一次。可以用来配置服务器,初始化并装载容器。装载完成后,MainServlet就持有一个容器对象WebApplicationContext,再通过WebApplicationContext的getBean方法,获取mainController等对象。每当有交易请求时,由mainController对象发起后续处理逻辑。

2.整个初始化流程如下:

— 读取servlet配置中的初始化参数,初始化变量;

— 初始化WebApplicationContext。通过BeanUtils加载XmlWebApplicationContext类,并初始化。再调用refresh方法,装载spring容器;

— 通过WebApplicationContext,获取bean对象。

四、Ajax支持

1.Ajax即Asynchronous JavaScript and Xml(异步的JavaScript和Xml)。Ajax不是新的编程语言,而是一种使用现有标准的新方法。Ajax是与服务器交换数据并更新部分网页的技术,在不重新加载整个页面的情况下。传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页。

2.XMLHttpRequest是Ajax的基础,所有现代浏览器均支持XMLHttpRequest对象(IE5和IE6使用ActiveXObject)。

3.创建XMLHttpRequest对象的语法:

variable = new XMLHttpRequest();

老版本的Internet Explorer(IE5和IE6),使用ActiveXObject对象:

variable = new ActiveXObject("Microsoft.XMLHTTP");

4.为了应对所有的现代浏览器,包括IE5和IE6,请检查浏览器是否支持XMLHttpRequest对象。

如果支持,则创建XMLHttpRequest对象;如果不支持,则创建ActiveActiveXObject对象:

var xmlhttp;
if(window.XMLHttpRequest){
// code for IE7+,Firefox
xmlhttp = new XMLHttpRequest();
}else{
// code for IE5,IE6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

5.向服务器发送请求

如需将请求发送到服务器,我们使用XMLHttpRequest对象的open()和send()方法:

方法1:open(method, url, async)
描述1:规定请求的类型、URL以及是否异步处理请求。
method:请求的类型;GET或POST。
url:文件在服务器上的位置。

async:true(异步)或false(同步)。

方法2:send(string)
描述2:将请求发送到服务器。
string:仅用于POST请求。

你可能感兴趣的:(Web服务器,Http请求)