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方式;
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集合