使用jsp、servlet開發(fā)
時(shí)間:2023-05-27 02:09:01 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-05-27 02:09:01 來源:網(wǎng)站運(yùn)營
使用jsp、servlet開發(fā):
動(dòng)態(tài)網(wǎng)頁開發(fā)基礎(chǔ)
Jsp簡介:靜態(tài)內(nèi)容(html文本),jsp指令元素:<% @ %>,jap腳本元素(小腳本,表達(dá)式<%= %>,聲明<%! %>),jsp的注釋<%-- --%>
Jsp執(zhí)行過程:翻譯,編譯,執(zhí)行;
Jsp數(shù)據(jù)交互(一)
Jsp內(nèi)置對(duì)象:pageContext,config,page ;session,application,out,request,respone
Jsp內(nèi)置對(duì)象:不需要聲明可以直接使用的對(duì)象
Jsp內(nèi)置對(duì)象out:
Jsp內(nèi)置對(duì)象request:用于處理請求數(shù)據(jù),
常用的方法:
String getParameter(String name)獲取表單頁面提交的數(shù)據(jù);
String[] getParamenterValues獲取一組相同名字表單提交的數(shù)據(jù);
SetCharacterEncoding()設(shè)置表單提交數(shù)據(jù)的編碼格式
GetRequestDispatcher().forward(request, respone)用于轉(zhuǎn)發(fā)請求
轉(zhuǎn)發(fā)的特點(diǎn):路徑不變,請求的數(shù)據(jù)不會(huì) 丟失
Jsp內(nèi)置對(duì)象respone:將服務(wù)器響應(yīng)給客戶端。
常用的方法:
AddCokie(Cookie cookie)向客戶端添加cookie
SetContent(String type)設(shè)置HTTP響應(yīng)的content編碼
SetCharacterEncoding()設(shè)置所響應(yīng)所采用的編碼
sendRedirect(String location)重定向:
重定向特點(diǎn):路徑不同,數(shù)據(jù)丟失
轉(zhuǎn)發(fā) 重定向:
服務(wù)器端發(fā)揮作用,同一請求在服務(wù)器之間傳遞 客戶端發(fā)揮作用,發(fā)送新請求實(shí)轉(zhuǎn)向
客戶端瀏覽器的地址欄不會(huì)顯示轉(zhuǎn)向的地址 瀏覽器的地址欄會(huì)顯示轉(zhuǎn)向的地址
Jsp內(nèi)置對(duì)象session:記錄會(huì)話的相關(guān)信息,在一點(diǎn)時(shí)間內(nèi),一個(gè)用戶與web服務(wù)器的一連串相關(guān)的交互過程,包含瀏覽器與服務(wù)器的多次請求與響應(yīng)(服務(wù)器端的機(jī)制,通過sessionid標(biāo)識(shí)是否是同一次會(huì)話)
常用的方法:
getId()獲取sessionid
setMaxInactiveInterval(int interval)最后一次訪問時(shí)間
int getMaxInactiveInterval()獲取session有效的非活動(dòng)時(shí)間
setAttribute(String key,Object object)以key/value的形式存儲(chǔ)在session
getAttribute(String key)以key的形式保存對(duì)象
removeAttribute()從session中刪除指定key對(duì)應(yīng)的對(duì)象
Include指令:文件引用<%@ include file=”應(yīng)用文件路徑”%>
Jsp數(shù)據(jù)交互(二)
Jsp內(nèi)置對(duì)象application:統(tǒng)計(jì)應(yīng)用訪問人數(shù),實(shí)現(xiàn)用戶共享,類似于系統(tǒng)的全局變量
常用的方法:
setAttribute(String key ,Object value)以key/value的形式存儲(chǔ)在應(yīng)用中
Object getAttribute()通過key獲取應(yīng)用的對(duì)象
String getRealPath()返回相對(duì)路徑的真實(shí)路徑
對(duì)象的作用域:page,request,session,application作用域
Page作用域:是在服務(wù)器發(fā)送響應(yīng)或請求轉(zhuǎn)發(fā)到其他頁面或資源后失效,通過pageContext對(duì)象的setAttribute()和getAttribute()方法訪問;
Request作用域:與客戶端請求綁定一起,通過request對(duì)象的setAttribute()和getAttribute()方法進(jìn)行訪問
Session的作用域:會(huì)話有效期內(nèi),通過session對(duì)象的setAttribute()和getAttribute()方法進(jìn)行訪問
Application的作用域;整個(gè)web應(yīng)用, 通過application’對(duì)象的setAttribute()和getAttribute()方法進(jìn)行訪問
Cookie:跟蹤用戶會(huì)話的方式,由服務(wù)器生成并發(fā)送給客戶端
作用:對(duì)特點(diǎn)對(duì)象的追蹤;統(tǒng)計(jì)網(wǎng)頁瀏覽數(shù)量;cookie有效期內(nèi)記錄用戶登錄信息;實(shí)現(xiàn)個(gè)性化服務(wù);
使用步驟:
1、 創(chuàng)建cookie對(duì)象;Cookie cookie=new Cookie(String name,String value)name代表cookie的名稱,value代表cookie的值,在javax.servlet.http包下
2、 寫入cookie;response.addCookie(newCookie) cookie常用的方法: setMaxAge()設(shè)置cookie的有效期秒 getMaxAge()獲取cookie的有效期秒 setValue()為cookie賦值 getName()獲取cookie的名稱 getValue()獲取cookie的值
3、 讀取cookie:request.getCookie()
Cookie和session作用域的對(duì)比:
Session作用域是在服務(wù)器端保存信息 cookie是在客戶端保存信息
Session作用域保存的是Object類型 Cookie保存的值是String
Session作用域隨會(huì)話結(jié)束而將其數(shù)據(jù)銷毀 cookie可長期保存在客戶端
Session通常保存的是重要的信息 保存不重要的信息
javaBean是Java可以跨平臺(tái)的重用組件,在應(yīng)用中主要用于封裝數(shù)據(jù)和封裝業(yè)務(wù)處理,JavaBean的定義需要遵循規(guī)則:公有類,屬性私有,具有公有的get/set屬性
使用分層實(shí)現(xiàn)業(yè)務(wù)處理
JNDI:為開發(fā)人員提供了查找和訪問的各種命名和目錄服務(wù)的通用,統(tǒng)一接口,通過conf/context.xml為全局配置:
使用jndi的步驟:
1. 配置資源;
2. 通過Context的lookup()方法操作資源
數(shù)據(jù)庫連接池:負(fù)責(zé)分配,管理,釋放數(shù)據(jù)庫連接允許應(yīng)用程序重復(fù)使用一個(gè)現(xiàn)有的數(shù)據(jù)庫連接;
數(shù)據(jù)源的配置:context.xml
<contex>
<Environment name=””;value=””;type=”java.lang.*”>
<resource name=“jndi的名稱” auth=”Container/Application”type=”javax.sql.DataSource” manActive=“處于活動(dòng)狀態(tài)最杭州接數(shù)目”maxIdle=“處以空閑狀態(tài)最大的邏輯數(shù)目”maxWait=”處于空閑狀態(tài)最大的時(shí)間”username=”連接數(shù)據(jù)庫的(root)”password=“連接數(shù)據(jù)庫密碼(root)”driverClassName=”連接數(shù)據(jù)庫的jdbc驅(qū)動(dòng)(com.mysql.jdbc.Driver)”url=“連接數(shù)據(jù)庫的路徑(jdbc:mysql:localhost:3306/數(shù)據(jù)庫名稱)”>
</contex>
Web.xml的配置:
<web-app>
<resource-ref>
<descritiptio引用資源的說明n></description>
<res-ref-name>jdbc/news</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
軟件設(shè)計(jì)分層模式:很多架構(gòu)模式的基礎(chǔ);
三層架構(gòu):表示層(一般以jsp,html),業(yè)務(wù)邏輯層(一般定義一些接口供表示層訪問),數(shù)據(jù)訪問層對(duì)數(shù)據(jù)的讀取和操作(一般放在dao包下)
關(guān)系
-客戶請求-à -客戶請求-à
表示層 業(yè)務(wù)邏輯層 數(shù)據(jù)訪問層
?-響應(yīng)數(shù)據(jù)- ?-響應(yīng)數(shù)據(jù)-
分層原則:
1. 上一層依賴下一層,依賴關(guān)系不跨層
2.
Jsp開發(fā)業(yè)務(wù)應(yīng)用
Servlet基礎(chǔ)
Jstl和el
Ajax和jquery
Ajax交互擴(kuò)展