web每章重点

来源:互联网 发布:文案策划简历 知乎 编辑:程序博客网 时间:2024/04/30 06:37


第一章:

  • HTTP协议原理(掌握HTTP遵循请求/响应模型,HTTP是无状态的协议,端口号为80

  • HTTP协议处理流程

    1、客户端和Web服务器建立连接

    2、客户端发送HTTP请求

    3、服务器生成HTTP响应回发

    4、关闭连接

  • HTTP协议请求和响应信息格式

    请求信息:

     分为请求行、请求头、空行、消息体(POST

     

    响应信息:

     

  • WEB服务器缺陷:

    只能发送静态页面。解决方法是增加辅助应用,CGIWEB服务器和外部应用通讯的标准。可使用多种语言开发。但每次请求开启进程,极大消耗服务器资源,JAVA使用WEB容器加servlet解决辅助应用。每次请求开启线程,所有线程共享WEB容器所在的进程

  • WEB容器作用

    Web容器负责管理和运行Servlet

    容器对Servlet的支持包括

    1. 通信支持

    2. servlet生命周期管理

    3. 多线程支持

    4. JSP支持

    5. 处理安全性

       

       

  • Web应用程序的组成

     

     

     

    WEB-INF里面的内容是不能被客户端直接访问。一般用于存放一些比较隐密的信息

     

     

     

  • Tomcat目录结构(

    bin目录(tomcat启动和关闭目录)

    conf(tomcat配置目录)

    webapps(web 用程序放置目录)

    work(主要用作JSP翻译和编译目录)

     

     

     

     

     

     

     

     

    第二章

     

  • Servlet类结构

     

    按照sun公司的规范,每个servlet类都必须实现servlet接口。其中service()方法是提供给用户实现的业务方法。GenericServletservletservletConfig(用于servlet配置的接口)作了简单实现,但没有实现service方法。该方法用它的子类根据自己不同协议的特点进行实现。HttpServletGenericServlet的子类。专门针对Http协议实现了service()方法。针对不同的请求类型调用doXX()方法。所以我们在书写servlet类的时候,一般只需要继承HttpServlet,并重写doXX()方法就行了。

  • Servlet的编码和部署

    public class TestServlet  extends HttpServlet {

        public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{

    }

    servlet只有在web容器 注册之后,才能被容器所识别

    <servlet>

         <servlet-name>test</servlet-</name>   servlet名,容器根据它找到对应的Servlet

         <servlet-class>com.lovo.Test</servlet-class>    servlet类全路径

    </servlet>

     

    <servlet-mapping>

         <servlet-name>test</servlet-</name>   servlet名,客户端根据请求URL找到

         <url-pattern>/abc</ url-pattern >    客户端请求URL

    </servlet-mapping>

     

       Servlet3标准中可以使用@webServlet(urlpatterns="/test")注册

     

  • Servlet URL映射路径 

    1、精确匹配   /abc  abc请求可以找到该servlet

    2、扩展匹配   *.do  .do结尾请求都可找到该servlet

    3、路径匹配   /abc/*  /abc/目录请求都可找到该servlet

     

  • 加上斜杠后,回到webapps根目录,这时,请求路径必须加入布署名

    <form  action=/布署名/url请求路径>

    </form>

     

    // 在当前目录下查找

    <form action=url请求路径>


    </form>

     

     

  • Servlet生命周期

    1、容器启动,会读取conf/server.xml文件,以确定启动端口和WEB应用存放的路径

    2WEB容器启动会读取每个WEB应用的web.xml文件配置信息,并解析web.xml文件。得到servlet配置信息。

  1. 容器加载并实例化Servlet

    web.xml文件配置servlet时有个<load-on-startup>如果大于等于0则启动容器就实例化,如果为负数或缺省则第一次请求实例化)

  2. 容器调用init()方法初始化

  3. 每次请求调用service()方法完成逻辑

  4. 容器丢弃servlet调用destroy()方法

     

    其中12346只执行一行,只有5是每次请求都会执行。而且在整个生命周期中,servlet对象只有一个,单实例多线程。

  • Servlet的配置对象:ServletConfig可以读取<init-param>相关的初始化信息。

  • Servlet全局对象:ServletContext  作用于整个WEB应用

        作用:1、可使用getRealPath()获得资源真实路径

              2、可使用getAttribute()、和setAttribute()方法共享全局变量。

              3、可以读取<context-param>全局初始化信息

     


    第三章

     

  • HTTP状态码

     

    HTTP状态码:

    100-199:表示信息性代码,标示客户端应该采取的其他动作,请求正在进行。

    200-299:表示客户请求成功。

    300-399:表示用于已经移走的资源文件,指示新的地址。

    400-499:表示由客户端引发的错误。

    500-599:表示由服务器端引发的错误。

     

    设置状态码sendError(code,Resource Not Found);

     

    按照响应信息的格式,先有状态行,再有消息体,所以注意在使用PrintWriter向客户端输出信息之前,设置状态码

     

  • 设置HTTP响应头

    目的用于告诉客户端

    发送回来的内容的类型

    有多少内容被正被发送

    发送内容的服务器的类型

    设置响应头的方法:setHeader()setHeaders()。注意:设置响应头只能是HTTP协议。所以setHeadersetHeaders()都是HttpServletResponse中的方法

     

  • 设置HTTP消息体

    response.getWriter()获得打印字符流,可以输出文本

    response.getOutputStream()获得输出字节流,可以发送二进制数据。

     

  • 重定向原理

    重定向调用方法response.sendRedirect("http://127.0.0.1:8080/lovobook/bar.html");

     

    1,浏览器向服务器发送HTTP请求。

    2,服务器接收到请求后,如果调用response.sendRedirect()方法,表示资源已被移走。则发送一个302的状态码和location的响应头。在location响应头指明要转发的地址。

    3,浏览器在接收到302状态码后,会读取location响应头的内容,并将地址栏的值赋为location响应头的内容。从而再向服务器发出第二次请求。由于是二次请求,所以重定向不能获得封装在request中的属性信息

     

     

     

     

     


    第四章

  • HTTP请求提交的方法主要有GETPOST

    Get请求方式

    浏览器向Web服务器发送HTTP请求

    用户在网页上点击一个超连接

    用户提交在网页上填写好的表单

    用户在浏览器地址栏中输入URL地址并回车  

    默认情况下都是使用HTTP协议的GET方法提交请求

     

    POST请求方式

    <FORM name='loginForm' method='POST' action='/loginServlet'>

     

    GET方式和POST方式区别:

    流的格式:

    GET方式请求参数放在URL后面,没有消息体。

    POST方式请求参数放在消息体中。

     

    用途:

    GET方式主要用于资源查找,表示客户端需要查找服务器上的某个资源

    POST方式主要用做数据传输,主要用于服务器接收客户端传递过来的信息。

     

     

    传输性能:

特征

GET方法

POST方法

提交数据类型

文本

文本、二进制文本

提交数据长度

不超过255个字符

没有限制

提交数据可见性

作为URL地址的一部分显示在浏览器地址栏

作为请求的消息体,不可见,

提交数据缓存

缓存在浏览器URL历史状态中

不会被浏览器缓存

 

 

 

  • 获取HTTP请求行

    getMethod():获取HTTP的请求方法,例如GETPOST

    getQueryString():获取请求URL后面的查询字符串。只对GET有效

    getServletPath():获取Servlet的映射路径

     

     

  • 获取请求头(只对HTTP协议有效)

    getHeader(name) :返回指定的请求头的值

    getHeaders(name) :返回一个Enumeration(枚举)包含请求头中的所有值

     

  • 获得表单数据

     

    getParameter()方法:获取指定名称的参数值,返回字符串类型。如果有多个同名的键,则返回第一个键对应的值。

     

    getParameterValues()方法:获取指定名称的参数的多个值,以字符串数组的方式返回结果。

  • 获得消息体

    POST请求不但可以通过getParameter()方法获得表单数据,而且可以通过getInputStream()以字节方式获得表单数据,所以可以获得上传文件的二进制流

  • 上传文件 

    表单必须以POST提交,在form标签中,加入enctype=multipart/form-data

    如果使用servlet3上传文件,在servlet中加入@MultipartConfig,提供上传文件支持

  • 请求派发 

    RequestDispatcher  dis = request.getRequestDispatcher(path)

    dis.forward(request,response);

     

    客户端的请求可以发送给多个Servlet以及Web应用程序中的其它资源。整个过程只在服务器端完成,不需要客户端的参与,即客户端的只用发送一次原始的请求就可以实现转发的功能。所以通过请求转发,目标资源可以获得在request中封装的属性信息

     

    不能在请求转发和重定向之后,再进行请求转发和重定向

  • 请求范围

    变量可以保存在请求范围中

    在请求范围之外就不能进行访问了

     

     

    内部转发和重定向的区别:

  1. 内部转发由requestDispatcher发出,重定向由response发出。

  2. 内部转发一次请求,重定向二次请求。

  3. 内部转发可以取出request中封装的数据,重定向不能。

  4. 内部转发只能在服务器内部进行,重定向可以请求别的服务器。


    第五章

     

  • 为什么要进行状态管理

    HTTP协议使用的是无状态的连接

    对容器而言,每一个请求都来自于一个新的客户

     

    解决方案:

  1. 隐藏表单域

  2. Cookie

  3. Session

  4. URL重写

     

  • Cookie

     

     

    客户端向服务器发出请求,服务器接收请求之后,如果调用response.addCookie()方法。则服务器向客户端发送set-cookie响应头,从而将文本信息放置在客户端的Cookie中。当客户端再次向服务器发送请求时,则又会将Cookie的内容以Cookie请求头的方式发送给服务器,服务器可根据Cookie的内容判断是否是同一客户发出的请求。

    Cookie由于放置在客户端,并以文本形式发送,所以容易超成一些隐私问题。Cookie分两种,一种放在客户端浏览器缓存中,一种放在客户端的文件中。

     

  • Session

    Session是放置在服务器端的一个对象。用于保存客户端用户信息。

    Session工作原理:

    先由客户端向服务器发出一个请求,服务器在接收到这个请求的时候就给客户端分配一个session对象同时给这个session分配唯一的标识JSessionID,当完成这一过程的时候就把这个idsession对象保存在一个map集合中,并把这个sessionidcookie方式发给客户端。当客户端再次发送请求的时候,就会把这个sessionid以请求头的方式发送给服务器,然后服务器通过这个sessionidMap集合中找到相应的session对象。

    Sessioncookie区别:

  1. session的数据是放置在服务器端,而cookie信息放在客户端。

  2. Session是服务器端的一个对象,封装的数据是对象。而cookie的数据是文本。

     

    Session对象的获取:

    获取session是通过request.getsession(boolean)方法。参数为真如果没有会话对象则创建一个会话对象,如果有会话对象则直接返回,但是为false的话,表示的是如果有会话对象就直接返回,如果没有回话对象就返回null。值得注意的是没有参数的时候和getsession(true)是一样的效果。

     

    Session生命周期:

    在一个会话范围内。产生Session对象时,该对象就和客户端浏览器进行绑定,只要不关闭浏览器,在超时时间内该session都会有效。关闭浏览器,重开一个浏览器,则服务器会分配置新的Session对象。

    由于Session是放置在服务器端的对象。所以当客户端关闭浏览器,并不意味着Session对象的销毁。所以到一定时间,一定要对Session对象进行销毁,以释放服务器内存资源。

     

    ·销毁会话的几种方式:

      1、设置会话的超时时间

    setMaxInactiveInterval(int)对于对话指定客户请求的最大间隔时间,以秒为单位,

    web.xml中配置<session-config>

    <session-timeout>15</session-timeout>

    </session-config>值得注意的是这里的15是分钟

      2、调用sessioninvalidate()方法

      3、应用程序结束,或服务器崩溃

      

  • URL重写

    由于Cookie存在不安全的因素,会使得一些客户端禁用掉Cookie。因为Session(主要是指SessionID)也是用Cookie方式传递的,当用户禁用Cookie后,SessionID就不能到达服务器。从而服务器也不能维持和客户端的状态。这时可以用URL重写的方式将会话的ID强加在的每一个URL地址末尾,从而保证在该问服务器时,能将SessionID发送给服务器。

    调用response对象的encodeURL()方法编译URL,将sessionID附加在URL后面。

    <a href="/lovobook/WriteURL;jsessionid=F7A5D5B85C8036D46371D7D3B1E9D26> Click</a>

     

     


    第六章

作用域对象

属性操作方法

作用域范围说明

ServletContext(上下文)

void setAttribute(String, Object)

Object getAttribute(Sting)

void removeAttribute(String)

Enumeration getAttributeNames()

整个Web应用程序

HttpSession(会话)

一个会话交互过程

ServletRequest(请求)

一次请求过程

监听器概述

1、监听sessionrequestservletContext这三个对象里存取数据的变化

2、监听器对象可以在事情发生前、发生后可以做一些必要的处理

3Servlet监听器主要目的是给Web应用增加事件处理机制,以便更好地监视和控制Web应用的状态变化

 

监听器实现步骤:

  1. 确定事件源。事件源:servletContextsessionrequest

  2. 确定监听者。监听器必须实现监听器接口,并在监听器接口中实现逻辑方法

  3. 注册

    监听器只有注册之后,才能被容器所识别。

    <listener>

       <listener-class>

            com.lovobook.MyServletContextListener

      </listener-class>

    </listener>

    Servlet3标准中可以使用@WebListener注册

     

    监听器类型

    1ServletContextListener:用于监听ServletContext对象创建和销毁的事件。

      void contextInitialized(ServletContextEvent sce)——上下文对象创建时,触发

      void contextDestroyed(ServletContextEvent sce)——上下文对象销毁时触发

     

    2HttpSessionListener接口:监听HttpSession的创建和销毁。

    sessionCreated(HttpSessionEvent se)方法——创建HttpSession触发。

    sessionDestroyed (HttpSessionEvent se)——销毁HttpSession触发

     

    3HttpSessionBindingListener:唯一不需要注册的接口

      当一个类实现了HttpSessionBindingListener接口后,只要对象加入Session范围(即调用HttpSession对象的setAttribute方法的时候)或从Session范围中移出(即调用HttpSession对象的removeAttribute方法的时候或Session Time out的时候)时,容器分别会自动调用下列两个方法:

        valueBound(HttpSessionBindingEvent event)——绑定到session时触发

        valueUnbound(HttpSessionBindingEvent event)——移除session时触发

     


    第七章

  • 过滤器概念

    过滤器是一个中间组件,用于拦截源数据和目的数据之间的消息

    过滤二者之间传递的数据

  • 过滤器实现步骤:

    1、书写过滤器类

    过滤器类都必须实现javax.servlet.Filter接口

    public class HelloWorldFilter implements Filter {

       private FilterConfig filterConfig;

       public void init(FilterConfig filterConfig)    {//初始化方法

          this.filterConfig = filterConfig;

       }

       public void doFilter(

     ServletRequest request, ServletResponse response,//请求和响应均不是基于Http协议的

               FilterChain filterChain//将请求继续向后面的过滤器或目标资源发送

                     ) throws ServletException, IOException   {//业务方法书写过滤内容

          PrintWriter pw = response.getWriter();

          ……

             filterChain.doFilter(request,response);

     

       }

       public void destroy()   {//销毁方法

       }

    }

    在调用filterChain.doFilter方法后,将请求继续向目标资源发送。这时,也不能再做重定向和内部转发,否则抛出异常

     

    2、完成过滤器在容器中的注册

    <filter>

                <filter-name>HelloWorldFilter</filter-name>

                <filter-class>com.lovobook.HelloWorldFilter</filter-class>

             </filter>

             <!--将过滤器与URL模式关联,表示对什么资源进行过滤-->

             <filter-mapping>

                <filter-name>HelloWorldFilter</filter-name>

                <url-pattern>/filter/*</url-pattern>//对请求URL对应的资源过滤

    <servlet-name>testServlet</servlet-name>//servlet过滤

             </filter-mapping>

        在Servlet3标准中,可以使用@webFilter(urlpattern="/test")注册

        

     

     

     

     

     

  • 过滤器类型

         <filter-mapping>

             <filter-name>ValidatorFilter</filter-name>

             <url-pattern>/filter/*</url-pattern>

             <dispatcher></dispatcher>——如果为REQUEST表示以请求URL过滤默认),如果为FORWARD则对内部转发过滤

    </filter-mapping>

     

     

     

  • 过滤器链

    用多个过滤器处理在同一个请求

    • 使用多个<filter-mapping>元素配置过滤器链

    • 首先调用匹配请求URI的过滤器<url-pattern>

    • 再查找用Servlet名匹配请求URI的所有过滤器<servlet-name>  

    • 过滤器的执行顺序按照它们在部署描述文件中出现的顺序排序  

       

       


    • 第八章

  • Servlet的缺陷

    • Servlet的编码、部署和调试任务繁琐

    • 生成动态网页繁琐,不利于项目分工

  • JSP是为了解决servlet缺陷而产生的。让我们编写输出内容时,可以象普通网页一样编写。

     

  • JSP生命周期

    1Web容器第一次接收到对某个JSP页面的请求后,首先自动将该JSP页面翻译为java代码 。

    Tomcat将翻译后的代码放在Tomcat安装目录的/work子目录下

    Tomcat/conf子目录下 有以下描述

    <servlet>

        <servlet-name>jsp</servlet-name>

        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>//JSP引擎,由它完成翻译工作

    </servlet>

    . . . . . .

    <servlet-mapping>

        <servlet-name>jsp</servlet-name>

    <url-pattern>*.jsp</url-pattern>

    </servlet-mapping>

     

    2Web容器负责将Servlet代码编译为字节码。与源文件放在同一个目录下,在JSP生命周期中,整个翻译和编译步骤只发生一次

    3Web容器装载新生成的servlet

    4、第一次请求到达时,Web容器创建servlet实例对象。整个生命中,只有一个对象

    5Web容器调用Servlet示例的jspInit()方法,JSP页面装载资源

    6、每次请求到达都执行_jspService()方法,输出内容

    7、容器调用生成的servlet对象的jspDestroy()方法,销毁装载的资源

     

  • JSP规范所有JSP类都必须实现HttpJspPage接口,而这个接口是servlet子接口,所以JSP本质是servlet

  • JSPservlet类,所以可以在JSP中书写JAVA代码,但不要嵌入过多的JAVA代码,增加阅读和维护难度。JSP重在显示,而Servlet重在逻辑实现。

     

    JSP隐式对象

    在翻译好的类中,在_jspService()中有九个局部变量,并都做了初始化。由于我们在JSP中书写的内容都是丰富_jspService()方法,所以可以直接使用这些局部变量,这就是隐式对象

    四个作用域:

        pageContext:作用于页面

        request:作用于请求

        session:作用于会话

    application:作用于全局(类型是ServletContext

    二个输出:

       response:响应对象

       out:打印字符流,类型为JspWriter

    一个配置对象

       config:类型为ServletConfig

    一个当前对象

      page:指当前翻译好的类的对象

    一个异常对象

    exception:类型为Throwable

     

    JSP脚本元素

     

脚本元素

脚本语法

声明

<%!声明 %>用于JSP翻译好的类中,定义成员变量、静态变量和方法

Scriplet

<%代码 %>丰富_jspService方法,是普通JAVA代码

脚本表达式

<%=脚本表达式 %>相当于out.print但是注意后面不能加分号

 

指令

  • JSP中,有三种类型的指令

    page指令为当前页面提供处理指令

    contentType 设置向客户端输出的MIME类型和字符编码

    import 在当前JSP类中导入包

     

    include指令用于把另一个文件包含在JSP

    格式:<%@ include file="relativeURL" %>

                 静态包含,编译时发生。将被包含文件的内容拷贝在包含文件中。所以两个页面不能有相同的变量。包含的是内容,只能包含文件

     

    taglib指令指定如何包含和访问自定义标签库   

    <%@taglib prefix=c uri=http://java.sun.com/jsp/jstl/core%>

     

       动作

  • <jsp:include>动作是一种动态的包含

        语法格式为:

    <jsp:include page="localURL"  />

    page:表示一个相对路径

     

    动态包含,包含的是结果,在请求时发生,所以两页面可以有相同的变量,可包含文件也可包含servlet输出的结果,并可传递参数。但效率比指令包含低

    <jsp:include  page=loclaURL>

         <jsp:param  name=abc value=fff” >

    </jsp :include>

    被包含页面可以通过request.getParameter(abc)将值取出来

     

    <jsp:forward>动作,相当于request.getRequestDispatcher().forward()内部转发

    语法格式为:

    <jsp:forward page="relativeURL" />

     

     

     

    Jsp注释:

    <%--    --%>jsp注释,容器不会翻译,只在源代码可见,服务器和客户端均不可见。最为安全。

    <!--    -->html注释,容器会将html注释输出到客户端,服务器和客户端均可见。不能注释动态脚本代码。

    //  /*   */  java代码注释。只在服务器可见。

     

    javaBean规范:

    JavaBean 类必须是一个公共类,并将其访问属性设置为 publicJavaBean类必须有一个空的构造函数一个JavaBean类不应有公共实例变量,类变量都为private。要访问这些类变量,应该通过一组存取方法(getXxxsetXxx)来访问,不能以大写字母开始命名成员变量,前两个字母都不能是大写

     JavaBean应该是可序列化(serializable)的,即实现java.io.Serializable接口  

     

    三层架构:

    持久层(dao模式):创建实体类和数据库表进行映射。也就是哪个表对应哪个类,哪个属性对应哪个列,而持久层的作用是就是完成对象数据和关系数据的转换。

     

    业务层(事务脚本):将客户端请求的数据封装成一个方法。该方法中根据业务需要可能会调用多次数据更新操作。必须保证这些操作同时成功,同时失败。不允许部分成功部分失败而导致的数据混乱。

     

     

    表现层(MVC)

       M:模型,也就是实体bean。用于封装、传输数据

       V:视图,也就是htmljsp。用于数据的展示

       C:控制,也就是Servlet。用于调用业务类的业务方法,并控制操作的流程。


    第十章

     

    EL表达式:

    我的狗的名字是:${person.dog.name},需要注意,通过EL表达式取属性值时,调用的是get方法,所以如果没有该属性,但是有get方法,同样可以通过EL表达式取出数据。

     

    pageContextrequestsessionServletContext中查找属性值,从小作用域向大作用域查找,找到之后不再查找。

     

    可以采用EL表达式隐式对象减少搜索范围${requestScope.name}

     

    EL隐式对象作用域

     

    pageScopepage作用域属性的名称和值相关联的 Map 

    requestScoperequest作用域属性的名称和值相关联的 Map 

    sessionScopesession作用域属性的名称和值相关联的 Map 

    applicationScopeapplication作用域属性的名称和值相关联的 Map 

     

     

    EL表达式也可支持运算。${1+2}在页面上显示3  ${3>2}在页面上显示true

     

    JSTL标准标签库(重点)

    需要两个JAR文件。第一个文件是jstl.jar,它为JSTL标记库提供API类。第二个文件是standard.jar,它提供了标记库的实现类 。

    JSTL分为五种:核心库CoreXML库,SQL库,I18N库,函数库。核心库最为常用

     

    JSP页面上导入标准标签库

    通过<%@ taglib uri=http://java.sun.com/jsp/jstl/coreprefix=c%>引入到JSP

     

    判断标签:条件为真,执行标签体中的内容

    <c:if test="${x == '9'}">  ${x}</c:if>

     

    循环标签

    遍历Collection集合

    <c:forEach var="man" items="${numArray}">  ${man .id}   ${man .name}

    </c:forEach>

     

    遍历Map集合

    <c:forEach var="bean" items="${numArray}">  键对象:${bean .key}   值:${bean.value .name}

    </c:forEach>


    AJAX

     

    AJAX涉及到7项技术,JavascriptXMLHttpRequestDomXMLCSS,XHTML,及服务器相关的API

     

    这章内容以操作为主

     

    XMLHttpRequest对象的创建

    var xmlHttp = null;

     function setXmlHttp(){

           if (window.ActiveXObject) {//IE

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

                }

                else if (window.XMLHttpRequest) {//firefox

                    xmlHttp = new XMLHttpRequest();                

                }

           }

     

    xmlHttpRequest常用属性和方法

    //当准备状态发生变化时调用press方法以便监控对象得到响应信息

      xmlHttp.onreadystatechange = press;

    Get方式发送请求

    //第一个参数为提交方式第二个参数表示请求URL第三个参数为true表示异步传输同时表示当响应信息未到达客户端不向下执行代码

      //这一步是设置请求行

      //xmlHttp.open("GET","checkServlet?name="+userName,true);

      //这一步设置消息体同时向服务器发送请求

      //xmlHttp.send(null);

     

    POST方式发送请求

    xmlHttp.open("POST","checkServlet",true);

      //设置请求头为普通表单格式提交

      xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

      //POST方式,消息体内容为请求参数

      xmlHttp.send("name="+userName);

     

    //回调函数

      function press(){

      //xmlHttpreadyState属性为4的时候,表示XmlHttpRequest对象将响应信息返回

      if(xmlHttp.readyState == 4){

      //xmlHttp.status表示获得响应信息的状态码

      if(xmlHttp.status == 200){

          //调用服务器返回消息体的信息

      var info = xmlHttp.responseText;

    }

    }

    }

     

    使用jquery发送AJAX请求

    get请求

    $.get("test", { name: "John", time: "2pm" },

      function(data){

        alert("Data Loaded: " + data);

      },"json");

    post请求

    $.post("cutPage",{pageNO:2},

    function(content){

      $("#dataDiv").html(content);

      },"json");

0 0