java实现登陆面试题_【Javaweb】笔面试题 ---(1)(示例代码)
Javaweb
面試題;理解才是最重要的,而不是原封不動(dòng)的背下來
一.請(qǐng)簡(jiǎn)述doget和dopost它們的區(qū)別
1) get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
2) 在客戶端,Get方式在通過URL提交數(shù)據(jù),數(shù)據(jù)在URL中可以看到;POST方式,數(shù)據(jù)放置在HTML HEADER內(nèi)提交。
3) 對(duì)于get方式,服務(wù)器端用request.getQueryString()可以獲取GET請(qǐng)求參數(shù)的變量值,
對(duì)于post方式,服務(wù)器端用request.getParameter獲取提交的數(shù)據(jù)。
4) GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒有此限制。
5) 安全性問題。正如在(1)中提到,使用 Get 的時(shí)候,參數(shù)會(huì)顯示在地址欄上,而 Post 不會(huì)。?所以,如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用 get;
如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù),那么還是使用 post為好。
2、簡(jiǎn)述servlet的生命周期?
參考答案:
所謂生命周期,指的是servlet容器如何創(chuàng)建servlet實(shí)例、分配其資源、調(diào)用其方法、并銷毀其實(shí)例的整個(gè)過程。
階段一: 實(shí)例化(就是創(chuàng)建servlet對(duì)象,調(diào)用構(gòu)造器)
在如下兩種情況下會(huì)進(jìn)行對(duì)象實(shí)例化。
第一種情況:
當(dāng)請(qǐng)求到達(dá)容器時(shí),容器查找該servlet對(duì)象是否存在,如果不存在,才會(huì)創(chuàng)建實(shí)例。
第二種情況:
容器在啟動(dòng)時(shí),或者新部署了某個(gè)應(yīng)用時(shí),會(huì)檢查web.xml當(dāng)中,
servlet是否有 load-on-starup配置。如果有,則會(huì)創(chuàng)建該servlet實(shí)例。
load-on-starup參數(shù)值越小,優(yōu)先級(jí)越高(最小值為0,優(yōu)先級(jí)最高)。
階段二: 初始化
為servlet分配資源,調(diào)用init(ServletConfig config);方法
config對(duì)象可以用來訪問servlet的初始化參數(shù)。
初始化參數(shù)是使用init-param配置的參數(shù)。
init可以override。
階段三: 就緒/調(diào)用
有請(qǐng)求到達(dá)容器,容器調(diào)用servlet對(duì)象的service()方法。
HttpServlet的service()方法,會(huì)依據(jù)請(qǐng)求方式來調(diào)用doGet()或者doPost()方法。但是,這兩個(gè)do方法默認(rèn)情況下,會(huì)拋出異常,需要子類去override。
階段四: 銷毀
容器依據(jù)自身的算法,將不再需要的servlet對(duì)象刪除掉。
在刪除之前,會(huì)調(diào)用servlet對(duì)象的destroy()方法。
destroy()方法用于釋放資源。
在servlet的整個(gè)生命周期當(dāng)中,init,destroy只會(huì)執(zhí)行一次,而service方法會(huì)執(zhí)行多次。
3.請(qǐng)簡(jiǎn)述一下部署Serlvet的過程
test
TestServlet
test
/TestServlet
4. 有一個(gè)用戶名 test, 密碼 12345, 請(qǐng)編寫一段創(chuàng)建COOKIE的JSP代碼, 然后再編寫一段讀取COOKIE的JSP代碼, 在頁面上將COOKIE的信息顯示出來。
String str = “username= test&password=12345”;
Cookie cookie=new Cookie(“mycookie”, str);
response.addCookie(cookie);
Cookie cookies[]=request.getCookies();
For(int i=0;i< cookies.length;i++){
Out.print(cookies.getName+”=”+ cookies.getValue());
5. 請(qǐng)簡(jiǎn)述Cookie, Session 和Application它們的區(qū)別。
1) Cookie會(huì)在客戶端硬盤上創(chuàng)建Cookie文件
2) Session大部分情況下會(huì)在服務(wù)器端硬盤上寫入Cookie文件
3) Cookie安全性最低
4) Application 表示Servlet上下文環(huán)境,在整個(gè)WEB應(yīng)用中只有一個(gè)Application對(duì)象,用于存儲(chǔ)些全局性的數(shù)據(jù)
6.有如下所示的頁面:
頁面里有一個(gè)form表單:
,多選框:
請(qǐng)編寫JavaScript代碼,實(shí)現(xiàn)該表單多選框的 “全選”“全不選” 功能。
——————————全選——————————–
//拿到form表單
Var f = document.getElementByName(“buyForm”);
Var cb = f.isBuy;
For(i=0;i
If(cb[i]. checked ==false) cb[i]. checked = true;
}
7. 有這樣一個(gè)form表單,如下圖:
Form表單:
name=”userfrm” method=”post” action=”register_success.htm” >
登錄名:
name=”username” type=”text”>
密碼:
name=”pass” type=”password”>
重復(fù)密碼:
name=”rpass” type=”password”>
請(qǐng)編寫javascript程序?qū)崿F(xiàn)該表單的客戶端驗(yàn)證。
要求
1) 密碼不能為空并且最少為6位,還要求兩次輸入的密碼要一致
2) 登錄名不能為空,且只能包括字母、數(shù)字和下劃線字符
Var f =document.getElementsByName(“userfrm”);
Var isValiUserName= false, isValiPassword = false;
If(f. username!=”” && f. username!=”undefined”){//正則表達(dá)式驗(yàn)證只能包括字母、數(shù)字和下劃線字符
var re = new RegExp(“[a-zA-Z0-9]{5,20}”,”ig”);var str =“f.username.value”;
isValiUserName= re.test(str); //得到用戶名true/false的校驗(yàn)結(jié)果
}//校驗(yàn)密碼
If(f. password!=”” && f.password.length>=6 && f.password==f.rpassword){
isValiPassword= true;
}
If(isValiUserName==true && isValiPassword==true) return true;
Returnfalse;
8. 請(qǐng)簡(jiǎn)述一下ajax的原理及實(shí)現(xiàn)步驟。
原理: HTTP協(xié)議的異步通信
get 請(qǐng)求
1) 創(chuàng)建一個(gè)XMLHttpRequest對(duì)象
2) 調(diào)用該對(duì)象的open方法
3) 如果是get請(qǐng)求,設(shè)置回調(diào)函數(shù)onreadystatechange = callback
4) Send
如果是post 請(qǐng)求
5) 創(chuàng)建一個(gè)XMLHttpRequest對(duì)象
6) 調(diào)用該對(duì)象的open方法
7) 調(diào)用setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);
8) 設(shè)置回調(diào)函數(shù)onreadystatechange = callback
9) Send
9. 有如下一段HTML代碼:請(qǐng)使用jquery實(shí)現(xiàn)頁面的li元素基于奇數(shù)偶數(shù)的顏色換行
.odd{
}.even{background-color:red;
}
jquery 學(xué)習(xí)1jquery 學(xué)習(xí)2jquery 學(xué)習(xí)3jquery 學(xué)習(xí)4jquery 學(xué)習(xí)5jquery 學(xué)習(xí)6$(document).ready(function() {
$(‘li:even’).addClass(‘even’);
$(‘li:odd’).addClass(‘odd’);
});
10.SESSION的工作原理
session啟動(dòng)的時(shí)候被分配到一個(gè)專有的session id .服務(wù)器為其分配一塊內(nèi)存 .瀏覽器將其寫入Cookie.
服務(wù)器中的一進(jìn)程會(huì)監(jiān)視該session id,當(dāng)它超時(shí)或者關(guān)閉時(shí)候釋放內(nèi)存.當(dāng)瀏覽器連入服務(wù)器時(shí),
會(huì)在Cookie中尋找該session id.并判斷該id是否有效.有效就去讀取其中的值.無效重新建立一個(gè)session id
總結(jié)
以上是生活随笔為你收集整理的java实现登陆面试题_【Javaweb】笔面试题 ---(1)(示例代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: X99主板配什么内存?内存频率、容量、品
- 下一篇: JavaWeb中的乱码解决方法总结