2018 7 7 jsp 內建物件

2021-08-21 06:44:02 字數 3508 閱讀 3024

pagecontext  通過它可以.出其他8大內建物件

config

page

exception

getid

獲取sessionid

setmaxinactiveinterval

設定session最大失效時長

getmaxinactiveinterval

獲取··

invalidate

手動設定失效

setattribute(string key,object value)

以key-value的形式儲存資料到session中

getattribute(string key)

通過key獲取對應值

removeattribute(string key)

從session中刪除指定key對應值

為了避免**冗餘,驗證沒有登入而跳轉到登入介面的**,可以放在乙個單獨的只有

這些**的jsp檔案中,再在需要登陸驗證的頁面匯入該jsp檔案

<%@ include file="logincontroller.jsp" %>

1.呼叫setmaxinactiveinterval(s)單位是秒

2.在專案中的web.xml或者tomcat中的web.xml中修改session失效時長(單位是分鐘)

新增如下**:

1注意:乙個專案中一般有兩個web.xml(專案中和tomcat中);

如果有配置重複的選項,會以專案中的web.xml為準

tomcat 中的web.xml是全域性配置

out

write  只能列印字元

print  

println

request用於封裝由客戶端傳送給伺服器端的資訊(如表單註冊資訊)

方法:getparameter  根據name屬性獲取該值

getparametervalues

上面的複數

setcharacterencoding

設定伺服器獲取到的資料的編碼格式(tomcat預設採用iso-8859-1)

response用於封裝返回由伺服器響應客戶端反饋給客戶端的資訊

sendredirect(string location)   讓客戶發出另乙個url的請求資訊,達到跳轉;另乙個頁面的作用

分析頁面出現亂碼  主要分析以下3個方面的編碼格式是否一致(不一致就出現亂碼)

1.jsp頁面本身的編碼

pageencoding 頁面本身的編碼

contenttype:   瀏覽器渲染頁面的時候採用的編碼格式

一旦這兩個其中一種編碼格式已經指定  另外一種編碼格式如果不進行指定的話

預設都採用已經指定的編碼格式

2. 瀏覽器渲染頁面採用的編碼

3.伺服器儲存資料採用的編碼(request)  預設採用的是:iso-8859-1

1.提交表單時,採用post時:

request.setcharacterencoding("utf-8");設定伺服器儲存資料的編碼格式為utf_8;

2.提交表單時,採用get時(資料提交到url中):(第一種方法就不適用了,因為設定的是request內部儲存

資料的格式,不包括url)

a.改變在request獲取出來的資料編碼

//讀取資料

string name=request.getparameter("name");

//對獲取的資料進行字元轉碼:

name=new string(name.getbytes("iso-8859-1"),"utf-8");

b.改變url的編碼格式

在tomcat中  config/server.xml中新增  uriencoding="utf-8"

在呼叫重定位方法(sendredirect)後,無法獲取到第一次請求後提交的註冊資料

原因:瀏覽器發起了兩次請求,導致第一次請求失效

解決辦法:

1.儲存第一次請求獲取到的資料,並作為引數來發起第二次請求

使用查詢字串:?連線   有多個值對時,用&分隔

response.sendredirect("welcome.jsp?username="+username);

2.只傳送一次請求,即**

<%

requestdispatcher rd=request.getrequestdispatcher("welcom.jsp");

rd.forward(request,response);

%>

**的作用: 在多個頁面互動過程中請求中的資料可以共享;

1.**:

**是在伺服器端發揮作用,將同一請求在伺服器資源之間進行傳遞

客戶端瀏覽器的位址列不會顯示轉向後的位址

只發出一次請求

2.重定向:

重定向是在客戶端發揮作用,通過傳送乙個新的請求來實現頁面轉向

在位址列中可以顯示轉向後的位址

不止一次請求

cookie常用方法:

setmaxage(int s) 設定cookie有效期,以秒為單位

setvalue(string value)  在cookie建立後,對cookie進行賦值

getname() 獲取cookie名稱

getvalue() 獲取cookie值

int getmaxage 獲取cookie的效時間,以秒為單位

cookie newcookie=new cookie(string key,string value);

//寫入cookie

response.addcookie(newcookie);

//讀取cookie

cookie coolies=request.getcookies();

cookie 與 session 區別:

session:

在伺服器端儲存使用者資訊

session中儲存得時object型別

隨會話得結束而將其儲存資料銷毀

儲存重要得資訊

cookie

在客戶端儲存使用者資訊

cookie儲存得時string 型別

cookie可以長期儲存在客戶端

儲存不重要得使用者資訊

junit中的執行順序(beforeclass,before,after,afterclass可以省略,只執行test);

beforeclass

before

test

after

(還有其他test,就繼續..)

before

test

after

直到沒有其他test

afterclass(執行完畢)

在test中斷言(給該測試斷定乙個結果),

如果結果與斷言不同,則提示該測試不通過;

junit 常用斷言(assert.):

assertequals(a,b) 斷言a=b  

assertnull/assertnotnull(a)斷言a為空/非空

asserttrue/assertfalse(a>5) 斷言a>5為真/假

JSP內建物件

jsp內建物件對映表 下面是各個物件介紹 request 物件代表的是來自客戶端的請求,例如我們在form表單中填寫的資訊等,是最常用的物件。關於它的方法使用較多的是getparameter getparameternames和getparametervalues,通過呼叫這幾個方法來獲取請求物件中...

jsp內建物件

request 使用者端請求,此請求會包含來自 get post 請求的引數 response 網頁傳回使用者端的回應 包含了響應客戶請求的有關資訊 pagecontext 網頁的屬性是在這裡管理 頁面上下文物件 提供了對jsp頁面內所有的物件及名字空間的訪問 session 與請求有關的會話期,主...

JSP內建物件

內建物件 不需要預告定義,在指令碼 和表示式中直接使用。一 request物件 request物件封裝了由客戶端生成的 http 請求的所有細節,主要包括 http 頭資訊 系統資訊 請求方式 和 請求引數 等。1 訪問 請求引數 getparameter 示例 在頁面中定義超連結。刪除 在dele...