————在yii中我們可以使用php超級全域性變數像$_server,$_get或者$_post來直接響應請求資料,但是是更好的方法是使用yii強大的 chttprequest 類,它解決了在各種不同伺服器中的不一致性,管理cookies,提供一些額外的安全性和一套給力的物件導向方法。
—下面是 chttprequest 對 url 操作的一些方法。在下面的**中,我們用粗體字樣標記了返回的部分。
geturl
test/index?var=val
gethostinfo
/test/index?var=val
getpathinfo
test/index?var=val
getrequesturi
test/index?var=val
getquerystring
test/index?var=val
—chttprequest確保請求型別的方法:
——getispostrequest——返回是否這是乙個post請求。
——getisajaxrequest——返回這是否是乙個ajax請求。
——getrequesttype——返回請求型別,比如 get post head put delete.。
例如,我們可以使用 getisajaxrequest 來根據請求型別響應不同的內容:
class testcontroller extends ccontroller
}
在上面的**中,如果請求是通過ajax,我們就渲染了乙個沒有布局的檢視。
—儘管php為post和get都提供了超全域性變數,但 chttprequest 的對應方法則允許我們省略一些額外的檢查:
——getparam——返回指定get或post引數值。(public mixedgetparam(string $name, mixed $defaultvalue=null)
——getquery——返回指定get引數值。(getquery(string $name, mixed $defaultvalue=null)
——getpost——返回指定post引數值。(string $name, mixed $defaultvalue=null)
上面的 defaultvalue 在預設引數值不存在時生效。下面是個簡單的例子:
class testcontroller extends ccontroller
}
——延伸一下:sendfile()方法。向使用者傳送乙個檔案。
class testcontroller extends ccontroller
}
——最後要看一下 getcookies 方法。它返回乙個ccookiecollection類例項,這個例項允許我們處理 cookies。因為ccookiecollection繼承自cmap,所以我們可以使用一些原始的php方法:
class testcontroller extends ccontroller
}}
class cookie
public static function set($name, $value, $expiration=0)
}
在你把這份**放到 protected/components/cookie.php 後,我們就可以這樣做:
class testcontroller extends ccontroller
}
Servlet生命週期(Tomcat處理請求中)
從tomcat處理使用者請求,我們可以清晰的看到容器servlet的生命週期管理過程 1 客戶發出請求 web 伺服器 到web容器tomcat 2 tomcat主線程對 來使用者的請求做出響應建立兩個物件 httpservletrequest和httpservletresponse 3 從請求中的...
請不要哭泣
朋友,請不要哭泣,即使此刻你很受傷。傷害你的,不需要太多力量,而是他的一句話。你還是找乙個更好的人過日子吧 我知道這句話是怎樣把你的心靈震碎。而這殘忍的話語竟然出自自己深愛的男人之口。我知道你此刻有多痛心,曾經多收風風雨雨都走過了,如今卻要別離,別離,只因這句話刺耳的話。你憔悴的臉龐,劃過道道淚痕,...
請不要折騰
下午看電視,吉林台老梁說事 不記得什麼節目,就是老梁說說自己的看法 講的是高校擴招的利弊。比較喜歡他的節目,一口東北腔,相貌憨厚,評說切中要害。其中提到一點,我很有體會 很多措施在實施時,基礎可能都不夠牢靠,強行上馬,屬於 折騰 在實施後,都要有個階段償還以前欠下的 債務 只有經過這個較長時期的修養...