jsp的9个内置对象
生活随笔
收集整理的這篇文章主要介紹了
jsp的9个内置对象
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Jsp提供了request、response、session、application、out、page、config、exception、pageContext9個(gè)內(nèi)置對象。1. Request
Request對象封裝了由客戶端生成的http請求的所有細(xì)節(jié),主要包括http頭信息、請求方式和請求參數(shù)等,通過該對象提供的相應(yīng)方法可以獲取客戶端請求中的信息。
Request.getParameter(String arg0)方法的使用。
請求login.jsp頁面。
<div>
<Form action="login.jsp" method="post">
<ul><li><h3>用戶登錄</h3></li></ul>
<ul><li>用戶名:<input type="text" name="username"></li></ul>
<ul><li>密 碼:<input type="password" name="pwd"></li></ul>
<ul><li><input type="submit" value="登錄"></li></ul>
</Form>
</div>
login.jsp頁面
<%
//獲得用戶名
String name=request.getParameter("username");
String pwd=request.getParameter("pwd");
if("guoyanan".equals(name) && "123".equals(pwd)){out.print("<h1>登錄成功</h1>");
}else{out.print("<h1>登錄失敗</h1>");
}
%>處理獲取請求參數(shù)時(shí)的亂碼。
String user=new String(Request.getParameter(String arg0).getBytes(“iso-8851-1”),”UTF-8”);
處理提交信息時(shí)亂碼。
Request.setCharacterEncoding(“UTF-8”);
Request對象獲取客戶端信息的常用方法
方法 說明
getHeader(String name) 獲取http協(xié)議定義的文件頭信息
getHeaders(String name) 返回指定名稱的request Header的所有值,結(jié)果是一個(gè)枚舉的實(shí)例。
getHeadersNames() 返回所有request Header的名稱,結(jié)構(gòu)是一個(gè)枚舉型的實(shí)例。
getMethod() 獲得客戶端向服務(wù)器傳送的數(shù)據(jù)方式:get、post、header、trace等。
getProtocol() 獲得客戶端向服務(wù)器傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱。
getRequestURL() 獲取發(fā)出請求字符串的客戶端地址,不包括請求的參數(shù)
getRealPath() 返回請求文件的絕對路徑
getRemoteHost() 獲取客戶端的主機(jī)名
getRemoteAddr() 獲取客戶端的ip地址
getServerName() 獲取服務(wù)器的名字
getServerPath() 獲取客戶端所有請求的腳本文件的文件路徑
getServerPort() 獲取服務(wù)器的端口號
getCookies() 獲取客戶端保存的Cookies數(shù)據(jù)Request對象域
在request域內(nèi)存放數(shù)據(jù)。
Request.setAttribute(String name,Object obj);
Name:變量名。
Object:傳遞的數(shù)據(jù)。
獲取request域內(nèi)的數(shù)據(jù)。
Request.getAttribute(String name);
2. Response響應(yīng)對象
Response對象用于響應(yīng)客戶請求并向客戶端輸出信息,它封裝了jsp生產(chǎn)的響應(yīng),并發(fā)送到客戶端以響應(yīng)客戶端的請求。請求的數(shù)據(jù)可以是多種數(shù)據(jù)類型,甚至文件。
禁用緩存
Response.setHeader(“Cache-Control”,”no-store”);
Response.setDateHeader(“Expires”,0);
1. 設(shè)置頁面自動刷新
Response.setHeader(“refresh”,0);
2. 定時(shí)跳轉(zhuǎn)網(wǎng)頁
Response.setHeader(“refresh”,”5;url=login.jsp”);
設(shè)置mime類型
Response.setContentType(String type);
Type可選類型:text/html、text/plain、application/x_msexcel、application/msword等。
頁面重定向
Response.sendRedirect(String path);
Path:URL路徑。不同主機(jī)的URL路徑需要添加http://…
3. Out輸出對象
Out對象向客戶端瀏覽器輸出信息,并管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。
輸出數(shù)據(jù)。
Out.print(String string)方法。
Out.println(String string)方法。
管理緩沖區(qū)
方法 說明
clear() 清除緩沖區(qū)中的內(nèi)容
clearBuffer() 清除當(dāng)前緩沖區(qū)的內(nèi)容
isAutoFlush() 檢測當(dāng)前緩沖區(qū)已滿時(shí)是自動清空,還是拋出異常
flush() 刷新流
getBufferSize() 獲取緩沖區(qū)的大小4. Session對象
Session的生命周期,是作用在一個(gè)瀏覽器中,在各個(gè)頁面中共享數(shù)據(jù),無論當(dāng)前瀏覽器存在多個(gè)頁面之間跳轉(zhuǎn),整個(gè)用戶會話一直存在。直到瀏覽器關(guān)閉。
通過session對象存儲數(shù)據(jù)和提取數(shù)據(jù)。
存儲數(shù)據(jù):
Session.setAttribute(String name,Object obj);
Name:存放數(shù)據(jù)的變量名。
Obj:存放的對象。
獲取數(shù)據(jù):
Session.getAttribute(String name);
Name:獲取數(shù)據(jù)的變量。同時(shí)獲取值。
移除對話中的數(shù)據(jù):
Session.removeAttribute(String name);
Name:需要?jiǎng)h除的變量名。
設(shè)置會話的有效時(shí)間:
Tomact服務(wù)器默認(rèn)會話時(shí)間為30分鐘。不過session也可以自己設(shè)置會話時(shí)間。
Session.setMaxInactiveInterval(int time);
Time:指有效時(shí)間,單位為秒。
收到注銷session:
Session.invalidate();5. application對象
application對象用于保存所有應(yīng)用程序中的公有數(shù)據(jù),與session相比application的生命周期更長。Application的生命周期跟服務(wù)器相關(guān)的,服務(wù)器啟動是創(chuàng)建application服務(wù)器關(guān)閉時(shí)注銷application對象。通常使用application對象統(tǒng)計(jì)網(wǎng)站訪問的次數(shù)和聊天信息等。存儲數(shù)據(jù):
Application.setAttribute(String name,Object obj);
Name:變量的名稱。
Obj:保存的對象。
獲取application對象使用的屬性名和屬性值:
Application.getAttributeNames();
實(shí)例:
因?yàn)橐褂肊numeration對象,所以要在jsp頁面的Page指令里添加import=”java.util.*”的內(nèi)容。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*"%><%
application.setAttribute("cuncu", "存儲");
Enumeration enema=application.getAttributeNames();//獲取application范圍內(nèi)的全部屬性while(enema.hasMoreElements()){String name=enema.nextElement().toString();//獲取屬性名Object value=application.getAttribute(name);//獲取屬性值out.print(name+":");out.println(value);}
%>根據(jù)變量名獲取數(shù)據(jù):
Application.getAttribute(String name);
Name:變量的名稱。
根據(jù)變量名刪除數(shù)據(jù):
Application.removeAttribute(String name);
Name:根據(jù)變量名刪除數(shù)據(jù)。配置Web應(yīng)用的初始化參數(shù):Application對象提供了訪問應(yīng)用程序初始化參數(shù)的方法,該參數(shù)在web.xml文件中設(shè)置。Web.xml文件位于Web應(yīng)用所在目錄下的Web-inf子目錄中,該文件中通過<context-param>標(biāo)記配置應(yīng)用程序初始化參數(shù)。
Web.xml配置實(shí)例:
<context-param>
<param-name>home</param-name>
<param-value>http://www.baidu.com</param-value>
</context-param>
獲取初始化對象:
Application.getInitParameter(String name);
Name:web文件中的配置名稱(param-name)獲取初始化參數(shù)的枚舉:
Application.getInitParamterNames();
Web.xml文件配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>home</param-name>
<param-value>http://www.baidu.com</param-value>
</context-param>
</web-app>
實(shí)例:
<%
application.setAttribute("cuncu", "存儲");
Enumeration enema=application.getInitParameterNames();//獲取application范圍內(nèi)的全部屬性
String valuee=application.getInitParameter("home").toString();
out.print(valuee);while(enema.hasMoreElements()){String name=enema.nextElement().toString();//獲取屬性名String value=application.getInitParameter(name).toString();//獲取屬性值out.print(name+":");out.println(value);}
%>6. page對象
page對象代表jsp本身,只在jsp頁面內(nèi)才是合法的。該對象本質(zhì)上包含當(dāng)前Servlet接口引用的變量,可以看做是this關(guān)鍵字的別名。
Page對象的常用方法:方法 說明
getClass() 返回當(dāng)前Object的類
hashCode() 返回該Object的哈希代碼
toString() 把該Object類轉(zhuǎn)換為字符串
Equals(Object obj) 比較該對象和指定的對象是否相等7. pageContext對象
pageContext對象是一個(gè)比較特色的對象,通過它可以獲取jsp頁面的request、response、session、application、exception等對象。PageContext對象的方法:
方法 說明
Forward(java.lang.String relativeUtlpath) 把頁面轉(zhuǎn)發(fā)到另一個(gè)頁面
getAttribute(String name) 獲取參數(shù)值
getAttributeNamesInScope(int scope) 獲取某范圍的參數(shù)名稱的集合,返回值為java.util.Enumeration對象
getException() 返回exception對象
getRequest() 返回request對象
getResponse() 返回Response對象
getSession() 返回Session對象
getOut() 返回out對象
getApplication() 返回application對象
getServletConfig() 返回Config對象
setAttribute(String name,object obj) 為指定范圍內(nèi)的屬性設(shè)置屬性值
removeAttribute(String name) 刪除指定范圍內(nèi)的指定屬性8. Config對象
Config對象針對的是web.xml文件。
Config對象主要用于獲取服務(wù)器的配置信息,當(dāng)初始一個(gè)Servlet時(shí),容器把某些洗洗腦通過config對象傳遞給Servlet。開發(fā)人員可以在web.xml文件中為應(yīng)用程序配置環(huán)境中Servlet和jsp頁面提供初始化參數(shù)。
Config的常用方法:
方法 說明
getServletContext() 獲取Servlet上下文
getServletName() 獲取Servlet服務(wù)器名
getInitParameter() 獲取服務(wù)器所有初始參數(shù)名稱,返回值為java.util.Enumeration對象
getInitParameterNames() 獲取服務(wù)器中name參數(shù)的初始值9. Exception對象
Exception對象用來處理jsp文件執(zhí)行時(shí)發(fā)生的所有錯(cuò)誤和異常,只有在page指令中設(shè)置isErrorPage屬性值為true的頁面才可以被使用,設(shè)置跳轉(zhuǎn)的Error的頁面屬性errorPage=”error.jsp”。如果在jsp頁面出現(xiàn)沒有捕捉到的異常,這會生成exception對象,并將其傳送在page指令中設(shè)置的錯(cuò)誤頁面中,然后在錯(cuò)誤頁面中處理相應(yīng)的exception對象。
Exception對象的常用方法:
方法 說明
getMessage() 返回exception對象的異常信息字符串
getLocalizedmessage() 返回本地化的異常錯(cuò)誤
toString() 返回關(guān)于異常錯(cuò)誤的簡單信息描述
fillInStackTrace() 重寫異常錯(cuò)誤的棧執(zhí)行軌跡
?
轉(zhuǎn)載于:https://www.cnblogs.com/gynbk/p/6556289.html
總結(jié)
以上是生活随笔為你收集整理的jsp的9个内置对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PUTTY工具的使用
- 下一篇: 运维学习第三弹