jsp一共有9個內(nèi)置對象,分別是以下9個:
創(chuàng)新互聯(lián)公司是專業(yè)的坪山網(wǎng)站建設公司,坪山接單;提供網(wǎng)站制作、成都網(wǎng)站設計,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行坪山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
1.Request對象
發(fā)送請求時,該對象被創(chuàng)建,一次請求結(jié)束后即銷毀。(一次請求產(chǎn)生一個request對象)
該對象封裝了用戶提交的信息,通過調(diào)用該對象相應的方法要以獲取封裝的信息。即,使用該對象可以獲取用戶提交的信息。
當Request對象獲取客戶提交的內(nèi)容為漢字字符時,會出現(xiàn)亂碼現(xiàn)象,則必須進行特殊處理。首先,將獲取的字符串用ISO8859-1進行編碼,并將編碼存放到一個字節(jié)數(shù)組中,然后將這個數(shù)組轉(zhuǎn)化為字符串對象即可。如下代碼:
String text = request.getParameter("body");
byte [] b = text.getBytes("ISO8859-1"); //將text字符串轉(zhuǎn)換成字節(jié)數(shù)組---編碼的過程
text = new String(b); //構(gòu)造字符串,按照當前操作系統(tǒng)的字符集進行構(gòu)造。將字節(jié)轉(zhuǎn)換成字符串---解碼的過程
Request常用的方法:
getParameter(String s) ----- 獲取表單提交的信息
String s = request.getParameter("name");
getProtocol() -----獲取客戶使用的協(xié)議
String s = request.getProtocol() ;
getServletPath() ----獲取客戶提交信息的頁面
String s = request.getServletPath();
getMethod() -----獲取客戶提交信息的方式 get或post
String s = request.getMethod();
getHeader() ----- 獲取HTTP頭文件中的accept、accept-encoding和host的值
String s = request.getHeader("accept");
getRemoteAddr() --獲取客戶的ip地址
String s = request.getRemoteAddr();
getServerHost() ---獲取客戶機的名稱
String s = request.getServerHost();
getServerName() ---獲取服務器名稱
String s = request.getServerName();
getServerPort() ----獲取服務器的商口號
String s = request.getServerPort();
getPamameterNames() ----獲取客戶端提交的所有參數(shù)的名字
Enumeration enum = request.getParameterNames();
while(enum.hasMoreElements()){
String s = (String) enum.nextElement();
out.println(s);
}
2. Response對象:對客戶的請求做出動態(tài)響應,向客戶端發(fā)送數(shù)據(jù)。響應客戶請求時創(chuàng)建,響應結(jié)束時銷毀。(一次響應產(chǎn)生一個response對象)
動態(tài)響應contentType屬性
當一個用戶訪問了一個jsp頁面時,如果該頁面用page指令設置頁面的contentType屬性為text/html,那么jsp引擎將按照這個屬性值做出反應。如果要動態(tài)改變這個屬性值來響應客戶,就需要使用Response對象的setContentType(String s);方法來改變contentType屬性的值。
格式:response.setContentType(String s) -----參數(shù)s可?。簍ext/html,application/x-msexcel,application/msword等
Response重定向
在某些情況下,當響應客戶時,需要將客戶重新引導到另一個頁面,可以使用Response的sendRedirect(URL);方法,實現(xiàn)客戶的重定向
格式:response.sendRedirect("index.jsp");
3. Session對象: 在頁面的page指令加上session="true" 或缺省 情況下以及在servlet中使用request.getSession();的方式進行創(chuàng)建。超時或服務停止時,session結(jié)束。(一個用戶對應一個session對象)
什么是session對象? ----- 它是一個jsp內(nèi)置對象,它在第一個jsp被裝載時自動創(chuàng)建,完成會話期管理。從一個客戶打開瀏覽器并連接到服務器開始,到客戶關閉瀏覽器離 開這個服務器結(jié)束(或者超時),被稱為一個會話。當一個客戶訪問一個服務器時,可能會在這個服務器的幾個頁面之間切換,服務器應當通過某種辦法知道這是一個客戶,就需要創(chuàng)建session對象。
session對象的ID -----當一個客戶首次訪問服務器上的一個jsp頁面時,jsp引擎會產(chǎn)生一個session對象,同時分配一個String類型的的ID號,jsp引擎同時將這個ID號發(fā)送到客戶端,存放在cookie中,這樣,session對象直到客戶關閉瀏覽器后,服務器端,該客戶的session對象才會消失,會并,和客戶的會話對應關系消失。當客戶重新打開瀏覽器再連接到該服務器時,服務器為該客戶再創(chuàng)建一個新的session對象。
session對象的常用方法:
public String getId() ----獲取Session對象的編號
pulbic void setAttribute(String key,Object obj) --- 將參數(shù)object指定的對象obj添加到Session對象中,并為添加的對象指定一個索引關鍵字
public Object getAttribute(String key) --- 獲取session對象中含有關鍵字的對象
public Blooean isNew() ----判斷是否為一個新的客戶
4. Application對象:啟動服務時創(chuàng)建,停止服務時銷毀。(整個程序只有一個application對象)
什么是Application對象? --- 服務器啟動后就產(chǎn)生了這個Application對象,當客戶在所訪問的的網(wǎng)站的各個頁面之間瀏覽時,這個Application對象都是同一個,直到服務器關閉。但是,與session對象不同的是,所有客戶的Application對象都是同一個,即,所有客戶共享這個內(nèi)置的Application對象。
Application對象的常用方法
setAttribute(String key,Ojbect obj) ----將參數(shù)obj添加到Application對象中,并為添加的對象指定一個索引關鍵字
getAttribute(String key); ---- 獲取Application對象中含有關鍵字的對象
5.Out對象:請求時,就創(chuàng)建,請求結(jié)束時,銷毀。(一個請求,創(chuàng)建一個out對象)
Out對象是一個輸出流,用來向客戶端輸出數(shù)據(jù)。out對象用于各種數(shù)據(jù)的輸出。其常用方法如下:
out.print(); ---- 向瀏覽器輸出各種類型數(shù)據(jù)
out.newLine(); --- 輸出一個換行符
out.close(); ---關閉流
6.cookie對象:
什么是cookie?----cookie是web服務器保存在用戶硬盤上的一段文本。cookie允許一個web站點在用戶電腦上保存信息并且隨后再取它。
舉例來說,一個web站點可能會為每一個訪問者產(chǎn)生一個唯一的ID、然后以cookie文件的形式保存在每個用戶的機器上。
如果用戶選擇的是IE瀏覽器訪問web,用戶就會看到所有保存在自己硬盤上的cookie。它們最常存放的地方是:c:/Windows/Cookies。cookie是以”關鍵字 key = 值 value“的格式來保存記錄的。
創(chuàng)建一個cookie對象
調(diào)用cookid對象的構(gòu)造函數(shù)就可以創(chuàng)建cookie對象。cookie的構(gòu)造函數(shù)有兩個字符串參數(shù):cookie名字和cookie值。
如:Cookie c = new Cookie("username","hyc");
將cookie對象傳送到客戶端
在jsp中,如果要將封裝好的cookie對象傳送到客戶端,可使用Response對象的addCookie()方法
如:Response.addCookie();
讀取保存在客戶端的cookie
使用request對象的getCookie()方法,執(zhí)行時,將所有客戶端傳來的cookie對象以數(shù)組的形式排列。如果要取出更符合需求的cookie對象,就需要循環(huán)比較數(shù)組內(nèi)每個對象的關鍵字。
如:Cookie [] c = request.getCookies();
if (c! = null){
for (int i = 0;ic.length;i++){
if("username".equals("c,getName))
out.println(c.getValue());
}
}
設置cookie對象的有效時間
調(diào)用cookie對象的setMaxAge()方法,可以設置cookie對象的有效時間。如
Cookie c = new Cookie("username","hyc");
c.setMaxAge(3600);
cookie應用
cookie對象的典型應用是用來統(tǒng)計網(wǎng)站的訪問人數(shù)。由于代理服務器、緩存等的使用,唯一能幫助網(wǎng)站精確統(tǒng)計來訪人數(shù)的方法就是為每個訪問者建立一個唯 一的ID。使用cookie,網(wǎng)站可以完成以下工作
測試定多少人訪問過;
測定訪問者有多少是新用戶(即第一次來訪)、有多少老用戶;
測定一個用戶多久訪問一次網(wǎng)站
當一個用戶第一次訪問時,網(wǎng)站在數(shù)據(jù)庫中建立一個新的ID,并把ID通過Cookie傳送給用戶。用戶再次來訪時,網(wǎng)站把該用戶的ID對應的計數(shù)器加1,得到用戶來訪的次數(shù)。
7.config對象:配置對象
8.page對象:頁面對象
9.Exception對象:在處理異常的網(wǎng)頁中可以直接訪問exception隱式對象
php 函數(shù)的參數(shù)類型可以指定為類名或數(shù)組類型array,比如 這樣是對的public function Right( My_Class $a, array $b ) 這樣是錯的public function Wrong( string $a, boolean $b ) 如果需要其他類型
我也剛剛學PHP,正在研究中,雖然你只給10分........
首先,將代碼保存到一個文件,如:mysql.class.php
其次,在一個常用的文件里調(diào)用:比如頭部文件header.php,因為我放在根目錄所以用下面方式導入其他文件:
require dirname(__FILE__) . 'include/config.php';
//導入類文件
require dirname(__FILE__) . 'include/mysql.class.php';
//定義一個類及初始化數(shù)據(jù)庫類
$db = new mysql($db_host, $db_user, $db_pass, $db_name);
$db_host = $db_user = $db_pass = $db_name = NULL;
然后,在test.php文件調(diào)用:
require_once dirname(__FILE__) . '/header.php';
使用方法:
$sql = "讀取表";
$res = $db-query($sql);
$info = array();//定義數(shù)組
while($row=$db-fetchRow($res))
{
$arr['id'] = $row['id'];
$arr['title'] = $row['title'];
$info[] = $arr;
}
可以在顯示的地方用:
foreach($info as $i)
{
echo $i['title']."br /";
}
或是直接使用while
還用另一種調(diào)用方式:
$here_area = $db-getRow("select areaid,areaname from {$table}area where areaid='$areaid'");
$here[] = array('name'=$here_area['areaname'],'id'=$here_area['areaid']);
測試通過,因為我正在使用.....................................
config.php代碼:
?php
$db_host = "localhost";
$db_name = "test";
$db_user = "root";
$db_pass = "";
$table = "mini_";
$charset = "gb2312";
$dbcharset = "gbk";
?
mysql.class.php代碼:
?php
class mysql
{
var $link = NULL;
//自動執(zhí)行__construct php5類構(gòu)建方法,如果PHP4和PHP5同時使用會自動使用PHP5的方法
function __construct($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
//自動執(zhí)行時調(diào)用mysql函數(shù)
$this-mysql($dbhost, $dbuser, $dbpw, $dbname, $pconnect, $quiet);
}
//php4類構(gòu)建方法,如果沒有 __construct 就自動執(zhí)行此功能
function mysql($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
if ($quiet)
{
$this-connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, $quiet);
}
else
{
$this-settings = array(
'dbhost' = $dbhost,
'dbuser' = $dbuser,
'dbpw' = $dbpw,
'dbname' = $dbname,
'charset' = $charset,
'pconnect' = $pconnect
);
}
}
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
global $dbcharset;
if ($pconnect)
{
if (!($this-link = @mysql_pconnect($dbhost, $dbuser, $dbpw)))
{
if (!$quiet)
{
$this-ErrorMsg("Can't pConnect MySQL Server($dbhost)!");
}
return false;
}
}
else
{
if (PHP_VERSION = '4.2')
{
$this-link = @mysql_connect($dbhost, $dbuser, $dbpw, true);
}
else
{
$this-link = @mysql_connect($dbhost, $dbuser, $dbpw);
mt_srand((double)microtime() * 1000000);
}
if (!$this-link)
{
if (!$quiet)
{
$this-ErrorMsg("Can't Connect MySQL Server($dbhost)!");
}
return false;
}
}
$this-dbhash = md5($this-root_path . $dbhost . $dbuser . $dbpw . $dbname);
$this-version = mysql_get_server_info($this-link);
if ($this-version '4.1')
{
if ($dbcharset != 'latin1')
{
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this-link);
}
if ($this-version '5.0.1')
{
mysql_query("SET sql_mode=''", $this-link);
}
}
if ($dbname)
{
if (mysql_select_db($dbname, $this-link) === false )
{
if (!$quiet)
{
$this-ErrorMsg("Can't select MySQL database($dbname)!");
}
return false;
}
else
{
return true;
}
}
else
{
return true;
}
}
function query($sql, $type = '')
{
if ($this-link === NULL)
{
$this-connect($this-settings['dbhost'], $this-settings['dbuser'], $this-settings['dbpw'], $this-settings['dbname'], $this-settings['charset'], $this-settings['pconnect']);
$this-settings = array();
}
if ($this-queryCount++ = 99)
{
$this-queryLog[] = $sql;
}
if ($this-queryTime == '')
{
if (PHP_VERSION = '5.0.0')
{
$this-queryTime = microtime(true);
}
else
{
$this-queryTime = microtime();
}
}
if (!($query = mysql_query($sql, $this-link)) $type != 'SILENT')
{
$this-error_message[]['message'] = 'MySQL Query Error';
$this-error_message[]['sql'] = $sql;
$this-error_message[]['error'] = mysql_error($this-link);
$this-error_message[]['errno'] = mysql_errno($this-link);
$this-ErrorMsg();
return false;
}
return $query;
}
function affected_rows()
{
return mysql_affected_rows($this-link);
}
function num_fields($query)
{
return mysql_num_fields($query);
}
function error()
{
return mysql_error($this-link);
}
function errno()
{
return mysql_errno($this-link);
}
function num_rows($query)
{
return mysql_num_rows($query);
}
function insert_id()
{
return mysql_insert_id($this-link);
}
function fetchRow($query)
{
return mysql_fetch_assoc($query);
}
function fetcharray($query)
{
return mysql_fetch_array($query);
}
function version()
{
return $this-version;
}
function close()
{
return mysql_close($this-link);
}
function ErrorMsg($message = '', $sql = '')
{
if ($message)
{
echo "$message\n\n";
}
else
{
echo "bMySQL server error report:";
print_r($this-error_message);
}
exit;
}
function getCol($sql)
{
$res = $this-query($sql);
if ($res !== false)
{
$arr = array();
while ($row = mysql_fetch_row($res))
{
$arr[] = $row[0];
}
return $arr;
}
else
{
return false;
}
}
function getOne($sql, $limited = false)
{
if ($limited == true)
{
$sql = trim($sql . ' LIMIT 1');
}
$res = $this-query($sql);
if ($res !== false)
{
$row = mysql_fetch_row($res);
if ($row !== false)
{
return $row[0];
}
else
{
return '';
}
}
else
{
return false;
}
}
function getAll($sql)
{
$res = $this-query($sql);
if ($res !== false)
{
$arr = array();
while ($row = mysql_fetch_assoc($res))
{
$arr[] = $row;
}
return $arr;
}
else
{
return false;
}
}
//使用: getRow($sql,true) 如果有true那值是 limit 1,讀取一條信息
function getRow($sql, $limited = false)
{
if ($limited == true)
{
$sql = trim($sql . ' LIMIT 1');
}
$res = $this-query($sql);
if ($res !== false)
{
return mysql_fetch_assoc($res);
}
else
{
return false;
}
}
}
?
當前名稱:php未定義數(shù)據(jù)庫類型 數(shù)據(jù)庫函數(shù)未定義
轉(zhuǎn)載注明:http://www.rwnh.cn/article24/doshdce.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站改版、App設計、靜態(tài)網(wǎng)站、營銷型網(wǎng)站建設、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)