客戶端與服務(wù)器端的工作
客戶端做的工作 客戶端的工作可分兩部分: 一、向服務(wù)器端發(fā)出請求即向服務(wù)器端發(fā)出提交 二、在客戶端進(jìn)行校驗(yàn)、以及頁面的修飾等功能
客戶端提交的方法 客戶端的提交方法分兩種:get與post提交 get可傳遞的信息只有2kb左右,而且是明碼傳送信息,所有的信息均可在地址欄中看見。 post可傳遞大量信息,加密傳送,所有的信息均可在地址欄中是不可見的。 post提交 所有的post提交只能在form中產(chǎn)生,提交方式又分兩種:直接提交(submit提交)、間接提交(腳本提交) 1)直接提交:點(diǎn)擊提交按鈕,立即發(fā)生提交 <form method=post action=*.asp> <input type=submit value="注冊"> 注:submit按鈕有一個(gè)默認(rèn)事件,就是提交 <input type=submit value="注冊" onclick="alert('hello');return ture or false;"> 注:在提交前,首先在屏幕上返回一個(gè)警告框"hello",若return的是true,則頁面發(fā)生提交;若return的是false,頁面不會發(fā)生提交。</form> 2)間接提交:是指點(diǎn)擊按鈕本身并不能完成提交,而只有通過腳本才能完成的提交,稱為間接提交。 <input type=button value="注冊" onclick="check();submit();"> 注: 在onclick處還可為onmousedown、onmouseup等事件名稱 button只是普通按鈕,本身并不能發(fā)生提交,只能通過onclick指定的腳本程序才能完成提交 點(diǎn)擊"注冊"后,先執(zhí)行onclick事件觸發(fā)的函數(shù),若返回值為true則發(fā)生提交,否則提交中止。 get提交 get提交發(fā)生在form表單和url中 1)在form中產(chǎn)生的 <form method=get action=*.asp> 2)在所有的url中產(chǎn)生的 在地址欄中輸入url地址,后跟所要傳遞的參數(shù)http://*.asp?name=www&age=20 在超鏈接上<a href="*.asp>mode=1&grade=1">click me </a> 在圖片的src屬性中<img src="*.asp?name=www"> 在幀里的src屬性中<frame src=" *.asp?name=www" name=框架名> 在asp重定向語句中response.redirect " *.asp?name=www" 在客戶端對象document中:document.location=" http:// *.asp?name=www" 在客戶端對象window中:window.open(" http:// *.asp?name=www")
服務(wù)器端做的工作 獲得客戶端信息的方法是通過request對象來完成的。 客戶端提交到服務(wù)器端的信息分為三類: 第一類:客戶機(jī)信息(包括客戶端的ip地址、端口號、主機(jī)名、提交方式等等) 第二類:通過form或url方式提交到服務(wù)器端的信息 第三類:cookie信息
獲得第一類信息用: request.getHeader("User-agent")返回客戶端瀏覽器的版本號、類型 getHeader(String name):獲得http協(xié)議定義的傳送文件頭信息 request. getMethod():獲得客戶端向服務(wù)器端傳送數(shù)據(jù)的方法有GET、POST、PUT等類型 request. getRequestURI():獲得發(fā)出請求字符串的客戶端地址 request. getServletPath():獲得客戶端所請求的腳本文件的文件路徑 request. getServerName():獲得服務(wù)器的名字 request.getServerPort():獲得服務(wù)器的端口號 request.getRemoteAddr():獲得客戶端的IP地址 request.getRemoteHost():獲得客戶端電腦的名字,若失敗,則返回客戶端電腦的IP地址 request.getProtocol(): request.getHeaderNames():返回所有request header的名字,結(jié)果集是一個(gè)Enumeration(枚舉)類的實(shí)例 request.getHeaders(String name):返回指定名字的request header的所有值,結(jié)果集是一個(gè)Enumeration(枚舉)類的實(shí)例
獲得第二類 get 信息用: request. getQueryString("變量名呀或控件名")獲得查詢字符串,該串由客戶端以GET方法向服務(wù)器端傳送
獲得第二類 post 信息用: request.getParameter(String name):獲得客戶端傳送給服務(wù)器端的參數(shù)值,該參數(shù)由name指定 request.getParameterNames():獲得客戶端傳送給服務(wù)器端的所有的參數(shù)名,結(jié)果集是一個(gè)Enumeration(枚舉)類的實(shí)例 request.getParameterValues(String name):獲得指定參數(shù)所有值
獲得第三類Cookie信息用: request.getCookies( "cookie變量名"):返回客戶端的cookie對象,結(jié)果是一個(gè)cookie數(shù)組
出處:藍(lán)色理想
責(zé)任編輯:帥青蛙
上一頁 [JSP] 循序漸進(jìn)教程 [7] 下一頁 [JSP] 循序漸進(jìn)教程 [9]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|