這篇文章主要介紹了JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
1.JSP內(nèi)置對(duì)象:JSP內(nèi)置對(duì)象是 Web 容器創(chuàng)建的一組對(duì)象,不用通過(guò)手動(dòng)new就可以使用
2.JSP9大內(nèi)置對(duì)象:
對(duì)象名稱 類型
request (請(qǐng)求對(duì)象) javax.servlet.ServletRequest
response(響應(yīng)對(duì)象) javax.servlet.SrvletResponse
out (輸出對(duì)象) javax.servlet.jsp.JspWriter
session (會(huì)話對(duì)象) javax.servlet.http.HttpSession
application(應(yīng)用程序?qū)ο螅? javax.servlet.ServletContext
page(頁(yè)面對(duì)象) javax.lang.Object
pageContext(頁(yè)面上下文對(duì)象) javax.servlet.jsp.PageContext
config(配置對(duì)象) javax.servlet.ServletConfig
execption(例外對(duì)象) javax.lang.Throwable
3.JSP內(nèi)置對(duì)象:out
%
int[] value = { 60, 70, 80 };
for (int i : value) {
//將輸出信息輸出到控制臺(tái)
System.out.println("控制臺(tái):"+i);
//out作為JSP最簡(jiǎn)單的內(nèi)置對(duì)象,主要用于將信息輸出到頁(yè)面上
out.println(i);
}
%>
4.JSP內(nèi)置對(duì)象:request:客戶端向服務(wù)器端發(fā)送請(qǐng)求數(shù)據(jù),我們通過(guò)request對(duì)象接收數(shù)據(jù)
%
//獲取數(shù)據(jù)之前解決亂碼 解決表單POST提交方式的亂碼
request.setCharacterEncoding("UTF-8");
//request用于獲取客戶端向服務(wù)器提交的數(shù)據(jù)
String username=request.getParameter("username");
String password=request.getParameter("password");
//獲取表單組件對(duì)應(yīng)多個(gè)值時(shí)的請(qǐng)求數(shù)據(jù)
String [] hobbys=request.getParameterValues("hobby");
for(int i=0;ihobbys.length;i++){
//獲取數(shù)據(jù)之前解決亂碼 解決表單Get提交方式的亂碼
/* hobbys[i]=new String(hobbys[i].getBytes("ISO-8859-1"),"UTF-8"); */
out.print(hobbys[i]);
}
out.println();
out.println(username+"\t"+password);
//性別
String sex=request.getParameter("sex");
out.println(sex);
//下拉框地址
String address=request.getParameter("address");
out.println(address);
%>
POST和GET的區(qū)別:
1.從安全角度考慮 post更安全一些 get不安全
2.post方式提交數(shù)據(jù)可以提交大概幾GB的數(shù)據(jù) get方式提交數(shù)據(jù)最大也就到幾KB
5.解決亂碼的方案:
post亂碼解決:request.setCharacterEncoding("UTF-8");
get亂碼解決: hobbys[i]=new String(hobbys[i].getBytes("ISO-8859-1"),"UTF-8");
6.HTTP狀態(tài)碼:
1** 信息,服務(wù)器收到請(qǐng)求,需要請(qǐng)求者繼續(xù)執(zhí)行操作
2** 成功,操作被成功接收并處理
3** 重定向,需要進(jìn)一步的操作以完成請(qǐng)求
4** 客戶端錯(cuò)誤,請(qǐng)求包含語(yǔ)法錯(cuò)誤或無(wú)法完成請(qǐng)求
5** 服務(wù)器錯(cuò)誤,服務(wù)器在處理請(qǐng)求的過(guò)程中發(fā)生了錯(cuò)誤
404和500錯(cuò)誤狀態(tài)碼配置頁(yè)面:
在當(dāng)前項(xiàng)目的web.xml當(dāng)中加入如下配置信息:
error-page>
error-code>500/error-code>
location>/500.jsp/location>
/error-page>
error-page>
error-code>404/error-code>
location>/404.jsp/location>
/error-page>
7.response:響應(yīng)
轉(zhuǎn)發(fā)(是在服務(wù)器內(nèi)部進(jìn)行,無(wú)法訪問(wèn)到除內(nèi)部以外的資源):
request.getRequestDispatcher("/response/welcome.jsp").forward(request, response);
重定向(全路徑):
response.sendRedirect("/Chap02/response/Login.jsp");
區(qū)別:
1.轉(zhuǎn)發(fā)是在服務(wù)器內(nèi)部進(jìn)行,重定向是客戶端完成的,需要寫(xiě)入全路徑,地址xxxxxxx
2.轉(zhuǎn)發(fā)請(qǐng)求1次,其余的操作都是在服務(wù)器內(nèi)部進(jìn)行的;重定向請(qǐng)求至少2次,其余的請(qǐng)求命令客戶端再次請(qǐng)求一個(gè)URL
3.轉(zhuǎn)發(fā)可以攜帶這次請(qǐng)求的數(shù)據(jù),重定向不帶數(shù)據(jù)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- SpringMVC 向jsp頁(yè)面?zhèn)鬟f數(shù)據(jù)庫(kù)讀取到的值方法
- jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法
- jsp 使用request為頁(yè)面添加靜態(tài)數(shù)據(jù)的實(shí)例
- Struts2.5 利用Ajax將json數(shù)據(jù)傳值到JSP的實(shí)例
- JSP 自定義標(biāo)簽實(shí)現(xiàn)數(shù)據(jù)字典的實(shí)例
- 讀取數(shù)據(jù)庫(kù)的數(shù)據(jù)并整合成3D餅圖在jsp中顯示詳解
- springMVC如何將controller中數(shù)據(jù)傳遞到j(luò)sp頁(yè)面
- jsp中EL表達(dá)式獲取數(shù)據(jù)