01.XMLHttpRequest().readyState的五种状态

0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

readyState 状态
状态说明

(0)未初始化
此阶段确认XMLHttpRequest对象是否创建,并为调用open()方法进行未初始化作好准备。值为0表示对象已经存在,否则浏览器会报错--对象不存在。

(1)载入
此阶段对XMLHttpRequest对象进行初始化,即调用open()方法,根据参数(method,url,true)完成对象状态的设置。并调用send()方法开始向服务端发送请求。值为1表示正在向服务端发送请求。

(2)载入完成
此阶段接收服务器端的响应数据。但获得的还只是服务端响应的原始数据,并不能直接在客户端使用。值为2表示已经接收完全部响应数据。并为下一阶段对数据解析作好准备。

(3)交互
此阶段解析接收到的服务器端响应数据。即根据服务器端响应头部返回的MIME类型把数据转换成能通过responseBody、responseText或responseXML属性存取的格式,为在客户端调用作好准备。状态3表示正在解析数据。

(4)完成
此阶段确认全部数据都已经解析为客户端可用的格式,解析已经完成。值为4表示数据解析完毕,可以通过XMLHttpRequest对象的相应属性取得数据。


概而括之,整个XMLHttpRequest对象的生命周期应该包含如下阶段:
创建-初始化请求-发送请求-接收数据-解析数据-完成

在具体应用中,明确了readyState的五个状态(XMLHttpRequest对象的生命周期各个阶段)的含义,就可以消除对Ajax核心的神秘感(语焉不详的背后要么是故弄玄虚,制造神秘感;要么就是“以其昏昏,使人昭昭”),迅速把握其实质,对减少学习中的挫折感和增强自信心都极其有益。

 

02.    关于ajax.post()请求

默认情况下,ajax发起的请求皆为get类型

 

解析:data参数是可选的不是必需的

jQuery.post(url, [data], [callback], [type])   返回值:XMLHttpRequest

概述

 

通过远程 HTTP POST 请求载入信息。

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

 

参数

url     String

发送请求地址。

data (可选)    Map

待发送 Key/value 参数。

callback (可选)     Function

发送成功时回调函数。

type (可选)      String

返回内容格式,xml, html, script, json, text, _default。

 

 

03.   struts2中关于result的type类型解析

推荐博客:http://blog.sina.com.cn/s/blog_7ffb8dd501014uzw.html

Type 类型值

作用说明

对应类

chain

用来处理Action 链

com.opensymphony.xwork2.ActionChainResult

dispatcher(默认值)

用来转向页面,通常处理 JSP

org.apache.struts2.dispatcher.ServletDispatcherResult

redirect

重定向到一个URL(jsp/action)

org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction

重定向到一个 Action

org.apache.struts2.dispatcher.ServletActionRedirectResult

plainText

显示源文件内容,如文件源码

org.apache.struts2.dispatcher.PlainTextResult

freemarker

处理 FreeMarker 模板

org.apache.struts2.views.freemarker.FreemarkerResult

httpheader

控制特殊 http 行为的结果类型

org.apache.struts2.dispatcher.HttpHeaderResult

stream

 

向浏览器发送 InputSream 对象,通常用来处理文件下载,还可用于返回 AJAX数据。

 

org.apache.struts2.dispatcher.StreamResult

 

velocity

处理 Velocity 模板

org.apache.struts2.dispatcher.VelocityResult

xslt   

   处理 XML/XLST 模板

 org.apache.struts2.views.xslt.XSLTResult

type="plaintext" 跳转显示源代码   eg:  

<result name="err" type="plaintext">  
    <param name="location">具体的位置</param>  
    <param name="charSet">字符规范(如GBK)</param>  
</result> 

 

 

04.   关于请求类型get和post解析

1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 
2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。 
3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。 
4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。 
5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。默认是用ISO-8859-1编码 
6、Get是Form的默认方法。

1 1. get是从服务器上获取数据,post是向服务器传送数据。
2 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3 3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4 4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5 5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。 搜索
6 
7 建议:
8 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
9 2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
详细剖析get&post

 

 

05.    Struts2之验证框架执行流程

推荐博客:http://blog.csdn.net/woshisap/article/details/7300907

 

 

06.    jsp中9个内置对象与servlet对应关系及四个作用域

解析内置对象没有get方法。

推荐博客:http://blog.csdn.net/machinecat0898/article/details/23380843

隐式对象

说明

out

转译后对应JspWriter对象,其内部关联一个PringWriter对象

request

转译后对应HttpServletRequest/ServletRequest对象

response

转译后对应HttpServletRespons/ServletResponse对象

config

转译后对应ServletConfig对象

application

转译后对应ServletContext对象

session

转译后对应HttpSession对象

pageContext

转译后对应PageContext对象,它提供了JSP页面资源的封装,并可设置页面范围属性

exception

转译后对应Throwable对象,代表由其他JSP页面抛出的异常对象,只会出现于JSP错误页面(isErrorPage设置为true的JSP页面)

page

转译后对应this

 

 07.    struts-config.xml配置文件详解     注:(该配置是struts1中的配置文件,建议回顾查看)

 推荐博客:http://blog.csdn.net/huozhicheng/article/details/5426356

 强烈建议详细查看!

 

 08.    访问ServletAPI的使用

解析:ServletActionContext.getRequest()获取到的request对象属于HttpServletRequest类型,而不是Map集合