1 html ==> iframe form(action , method(get/post) , enctype) frameset (***)
2 css ==> #id .class input (包含選擇) (***)
3 javascript : (*****)
javascript分三部分:ecmascript BOM DOM
javascript解析順序 (從上到下順序解析)
javascript(基本文法:變量\資料類型(String Number Boolean Object Undefined Function)(typeof instanceOf construcor) 語句 for while [try catch])
函數:3種方式: function語句 函數直接量(new function) 構造函數(Function) (差別 解析順序、作用域)
arguments(1接受函數的實際參數 2調用自己的用于遞歸)
call apply (綁定作用域)
this(總是指向目前函數的調用者)
執行環境、作用域鍊、閉包
引用類型:Object(Array/Date/...)
for(var attr in obj) //枚舉對象
delete user.id //删除對象的屬性
面向對象:學會寫一個簡單的類(Person) Map(模拟) 去掉數組的重複項(js對象特性 天然的hashmap)
prototype 原型:1 執行個體共享 2:擴充對象的屬性和方法
繼承:1原型繼承Sub.prototype = new SubInstance();
2模闆繼承利用call綁定目前父類(函數)
3混合繼承(原型+混合)
bom: window的常用方法和屬性(open opener showModalDialog dialogArguments retrunValue) setTimeout/setInterval
dom: 加載過程: 解析html 然後順序執行 節點的概念(node:元素節點 屬性節點 文本節點)節點都有三個屬性(nodeType nodeName nodeValue)
直接引用: getElementById getElementsByName getElementsByTagName
間接引用: childNodes parentNode firstChild... nextSibling...
操作節點: appendChild removeChild insertBefore ....
表單(正則) (*****)
4: XML(**) 了解XML(組織資料、之前[資料互動]/現在[架構的配置檔案]) XML解析(jdom/dom4j) (DTD)
5: http:用戶端發送一次請求 伺服器作出一次響應(自己要會看請求和響應的資訊[firebug])
6: servlet(所有的知識點都非常重要) (******)
建立一個web project的時候 一定注意的問題: 1 字元集 2 項目的改名字
servlet就是一個普通的java類 實作了特殊的接口(extends HttpServlet) 重新2個方法(doGet/doPost) 配置xml
tomcat: bin conf(server.xml(配置tomcat伺服器) web.xml(針對于項目的)) lib temp logs webapps(咱們的項目都釋出到這裡) work
servlet mapping : 一個servlet 可以對應多個mapping(/aa/bb /aa/* *.do)
servlet生命周期: (伺服器啟動的時候解析你項目裡的web.xml) 第一次通路servlet的url的時候初始化了 init destroy ... 單例兩種簡單的模式
如果想啟動時加載servlet loadonstarup init-param (...)
request / response / servletConfig / servletContext
session cookie (兩周之内自動登入)
7: jsp:(*****) 九大内置對象
request/response/config/page/pageContext/session/application/exception/out
jstl(if choose forEach) el(*****)
8: ajax...(*****)(new XMLHttpRequest(); ==> open(method,url,async) ==> 回調函數(onreadystatechange[request.readyState==4 status==200]) ) send(null);
9: jquey (****)
自己補充的:
1.el表達式,必須以“$”和“{”開頭,以“}”結尾;
2.el存取資料的方法很簡單,例如${username}意為取出某一範圍内名稱為username的變量,查找順序為pageScope,requestScope,sessionScope,applicationScope
3.js中判斷資料類型是用typeof,java中是用instanceof。當然js中也可以使用instanceof,但不常用。
4.js中函數有三種形式,
function test1(){
alert('第一種形式:function語句形式');
};
var test2 = function(){
alert("第二種形式,函數直接量形式,表達式");
};
var test3 = new Function("x","y","return x+y");
alert(test3(2,3));
//這是構造函數的形式,建立一個function類的執行個體對象
解析順序是function語句最先,即第一種function方法。而作用域則是構造函數Function為頂級作用域。
5.prototype作用:①實力共享②擴充對象的屬性和方法③繼承
6.js中數組的定義
var a = [];
var b = new Array();
7.js中eval()是用來執行字元串的。如alert(eval("2+2"));
8.json裡邊不僅可以定義屬性,還可以定義方法。如:
var user = {uname:"哈哈",pwd:"123",sleep:function(){
alert("我要睡了");
}}
想調用時可以這麼用user.sleep();
9.對于節點中表單的操作,單選按鈕和複選框的操作,一般采用周遊,因為單選按鈕和複選框都是一個組。
10.對于dom表單驗證這塊,可以
①在送出按鈕這兒添加事件
<input type="submit" value="送出" οnclick="return check(this.form)">
當傳回true的時候就送出,false就不送出。
②在表單添加事件
<from οnsubmit="return check(this)">
11.在servlet中,處理複選框内容可以用getParameterValues()
setContentType("text/html;charset=utf-8");//中間為分号,不是逗号
request.setCharacterEncoding設定請求實體的編碼,隻對post有效,對get無效。要讓對get方式送出的資料也有效,可以改動tomcat配置檔案server.xml,對connection元素增加一個屬性:useBodyEncodingForURL="true",用這些來解決中文亂碼問題。
12.将所有servlet放入一個容器統一管理,servletContext
請求轉發:
request.getRequestDispatcher("1.jsp").forward(request,response);//兩個請求
重定向:
response.sendRedirect("2.jsp");//1個請求
13.儲存以前操作的狀态
用戶端儲存cookie,伺服器端儲存session
①用戶端儲存cookie流程
a)伺服器端寫代碼:
Cookie ck = new Cookie("a","hello");//設定cookie的name為a,value為hello,類似于鍵值對
response.addCookie(ck);//給浏覽器添加cookie
b)響應頭中就會有一個Cookie:a=hello
c)浏覽器收到後,先放到記憶體中。如果cookie設定了有效期,則會寫到硬碟的檔案中。
d)浏覽器以後通路伺服器時,就會自動攜帶(在請求頭中攜帶)有效的cookie資訊
②伺服器端如何儲存資訊(session的跟蹤機制)
a)伺服器會new一個session對象,同時給這個session對象指定一個id
b)通過響應頭設定sessionId
c)浏覽器收到sessionId這個資訊,下次通路一定會攜帶sessionId
d)伺服器收到sessionId後,根據sessionId找到對應的session對象。然後,就可以檢視對象裡邊的内容。進而确定我們之前進行了什麼操作,即實作了狀态的儲存。
14.servlet生命周期
①加載
分兩個時機1.第一次請求的時候,以後請求就不再加載;2.如果配置了<load-on-startup>,則在啟動時加載
②初始化
調用init
③調用
先調用srvice,再用service調用doGet/doPost
④銷毀
調用destroy