rocket
走在agile的小路上
BlogJava
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
隨筆-55 評(píng)論-208 文章-0 trackbacks-0
最近估計(jì)是和utf-8干上了,今天又搞定一個(gè)ajax的編碼問題
今天開始試用ajax最為項(xiàng)目的輔助,本來開始很順利,測(cè)試的內(nèi)容也比較簡(jiǎn)單
先在一個(gè)jsp中加入ajax的引擎
//
ajax?引擎
????<script language="javascript">
????var?http_request?
=
?
false
;
????var?currentPos?
=
?
null
;
????function?send_request(url)?
{
//
初始化、指定處理函數(shù)、發(fā)送請(qǐng)求的函數(shù)
????????http_request?
=
?
false
;
????????
//
開始初始化XMLHttpRequest對(duì)象
????????
if
(window.XMLHttpRequest)?
{?
//
Mozilla?瀏覽器
????????????http_request?
=
?
new
?XMLHttpRequest();
????????????
if
?(http_request.overrideMimeType)?
{
//
設(shè)置MiME類別
????????????????http_request.overrideMimeType(
'
text/xml
'
);
????????????}
????????}
????????
else
?
if
?(window.ActiveXObject)?
{?
//
?IE瀏覽器
????????????
try
?
{
????????????????http_request?
=
?
new
?ActiveXObject(
"
Msxml2.XMLHTTP
"
);
????????????}
?
catch
?(e)?
{
????????????????
try
?
{
????????????????????http_request?
=
?
new
?ActiveXObject(
"
Microsoft.XMLHTTP
"
);
????????????????}
?
catch
?(e)?
{}
????????????}
????????}
????????
if
?(
!
http_request)?
{?
//
?異常,創(chuàng)建對(duì)象實(shí)例失敗
????????????window.alert(
"
不能創(chuàng)建XMLHttpRequest對(duì)象實(shí)例.
"
);
????????????
return
?
false
;
????????}
????????
????????http_request.onreadystatechange?
=
?processRequest;
????????
//
?確定發(fā)送請(qǐng)求的方式和URL以及是否同步執(zhí)行下段代碼
????????
????????http_request.open(
"
POST
"
,?url,?
true
);
????????http_request.setRequestHeader(
"
Content-Type
"
,
"
application/x-www-form-urlencoded
"
);
????????????
????????http_request.send(
null
);
????}
????
//
?處理返回信息的函數(shù)
????function?processRequest()?
{
????????
if
?(http_request.readyState?
==
?
4
)?
{?
//
?判斷對(duì)象狀態(tài)
?????????????
????????????
if
?(http_request.status?
==
?
200
)?
{?
//
?信息已經(jīng)成功返回,開始處理信息
????????????????
????????????????
????????????????
????????????????document.getElementById(currentPos).innerHTML?
=
?http_request.responseText;
????????????}
?
else
?
{?
//
頁(yè)面不正常
????????????????alert(
"
http_request.status?exception?code:
"
+
http_request.status);
????????????}
????????}
????}
</script>
然后在jsp中做個(gè)測(cè)試的select,和用于顯示ajax的回傳數(shù)據(jù)的區(qū)域
<
table?width
=
"
200
"
?border
=
"
0
"
?cellspacing
=
"
0
"
?cellpadding
=
"
0
"
>
????
<
tr
>
????????
<
td?height
=
"
20
"
><
select?name
=
"
ajaxtest
"
?size
=
"
1
"
?onchange
=
"
showRoles('test1');
"
>
????????
<
option?selected
=
"
selected
"
?value
=
"
test1
"
?
>
test1
</
option
>
????????
<
option?value
=
"
test2
"
?
>
test2
</
option
>
????????
<
option?value
=
"
test3
"
?
>
test3
</
option
>
????????
<
option?value
=
"
test4
"
?
>
test4
</
option
>
????????
</
select
></
td
>
????
</
tr
>
????
<
tr?style
=
"
display:none
"
>
????????
<
td?height
=
"
20
"
?id
=
"
test1
"
>&
nbsp;
</
td
>
????
</
tr
>
?</table>
再寫一個(gè)js用了作為事件的觸發(fā)
<
script?language
=
"
javascript
"
>
????????
????
//
顯示部門下的崗位
????function?showRoles(obj)?
{
????????document.getElementById(obj).parentNode.style.display?
=
?
""
;
????????document.getElementById(obj).innerHTML?
=
?
"
loading
"
????????currentPos?
=
?obj;
????????
????????send_request(
"
http://localhost/oa-web/app/test/sample2_2.jsp?playPos=
"
+
obj);
????}
</script>
?再另外寫一個(gè)資源jsp,用于讀取資源回來
<%
@?page?language
=
"
java
"
?
import
=
"
java.util.*
"
?pageEncoding
=
"
UTF-8
"
%>
<
meta?http
-
equiv
=
"
Content-Type
"
?content
=
"
text/html;?charset=UTF-8
"
>
<%
?
String?playPos?
=
?request.getParameter(
"
playPos
"
);
if
(
"
test1
"
.equals(playPos))?out.print(
"
總經(jīng)理皮總<br> 副總經(jīng)理老皮
"
);
else
?
if
(
"
test2
"
.equals(playPos))?out.println(
"
總工程師<br> 軟件工程師
"
);
else
?
if
(
"
test3
"
.equals(playPos))?out.println(
"
總工程師張青與<br> 軟件工程師味蕾
"
);
else
?
if
(
"
test4
"
.equals(playPos))?out.println(
"
總工程師張遲斌<br> 軟件工程師章魚
"
);
%>
兩個(gè)jsp的編碼都是utf-8的,但是在測(cè)試時(shí)發(fā)現(xiàn)回傳回來的responseText都是亂碼
去google上找,原來http_request?這個(gè)對(duì)象在request和response都是以gb2312進(jìn)行的,需要更改編碼
但是可惡的是javascript沒有提供更改http_request?編碼的方法于是在網(wǎng)上找了一個(gè)vbscript的函數(shù)
<
SCRIPT?LANGUAGE
=
"
vbScript
"
>
?
?Function?URLEncoding(vstrIn)?
?strReturn?
=
?
""
?
?For?i?
=
?
1
?To?Len(vstrIn)
?ThisChr?
=
?Mid(vStrIn,i,
1
)
?If?Abs(Asc(ThisChr))?
<
?
&
HFF?Then
?strReturn?
=
?strReturn?
&
?ThisChr?
?Else?
?innerCode?
=
?Asc(ThisChr)
?If?innerCode?
<
?
0
?Then?
?innerCode?
=
?innerCode?
+
?
&
H10000
?End?If?
?Hight8?
=
?(innerCode?And?
&
HFF00)\?
&
HFF?
?Low8?
=
?innerCode?And?
&
HFF?
?strReturn?
=
?strReturn?
&
?
"
%
"
?
&
?Hex(Hight8)?
&
?
"
%
"
?
&
?Hex(Low8)
?End?If
?Next?
?URLEncoding?
=
?strReturn
?End?Function?
</
SCRIPT
>
?
然后對(duì)回傳回來的http_request?進(jìn)行一下編碼更改
????
//
?處理返回信息的函數(shù)
????function?processRequest()?
{
????????
if
?(http_request.readyState?
==
?
4
)?
{?
//
?判斷對(duì)象狀態(tài)
?????????????
????????????
if
?(http_request.status?
==
?
200
)?
{?
//
?信息已經(jīng)成功返回,開始處理信息
????????????????
????????????????URLEncoding(http_request.responseBody);
????????????????
????????????????document.getElementById(currentPos).innerHTML?
=
?http_request.responseText;
????????????}
?
else
?
{?
//
頁(yè)面不正常
????????????????alert(
"
http_request.status?exception?code:
"
+
http_request.status);
????????????}
????????}
????}
最終終于可以正常顯示中文了
這兩天和編碼的糾纏有一個(gè)深刻的體會(huì):做中國(guó)人難啊,要是計(jì)算機(jī)是中國(guó)人發(fā)明的多好:)
注:這種方法只在IE上試驗(yàn)過,別的瀏覽器還沒有試
posted on 2006-04-13 20:14
rocket
閱讀(1483)
評(píng)論(0)
編輯
收藏
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯
QQ:19794405
agilelife分享群:59765983
QQ上少了,請(qǐng)大家加入msn group:
agilelife@groups.msn.com
敏捷項(xiàng)目實(shí)踐經(jīng)驗(yàn)分享
TDD,重構(gòu),迭代,結(jié)對(duì)
<
2006年4月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(7)
給我留言
查看公開留言
查看私人留言
我參與的團(tuán)隊(duì)
深圳Java俱樂部(0/0)
隨筆分類
(15)
UI相關(guān)
好文翻譯(1)
常用框架(1)
敏捷方法(4)
數(shù)據(jù)庫(kù)相關(guān)
構(gòu)架設(shè)計(jì)(2)
經(jīng)驗(yàn)積累(3)
項(xiàng)目管理(4)
隨筆檔案
(55)
2008年12月 (1)
2008年7月 (2)
2008年5月 (8)
2008年3月 (1)
2008年2月 (4)
2007年10月 (1)
2007年9月 (4)
2007年7月 (3)
2007年5月 (2)
2007年4月 (6)
2007年3月 (5)
2007年2月 (2)
2007年1月 (3)
2006年11月 (3)
2006年10月 (1)
2006年8月 (1)
2006年7月 (1)
2006年5月 (2)
2006年4月 (2)
2006年3月 (3)
相冊(cè)
rocket
搜索
積分與排名
積分 - 133236
排名 - 464
最新評(píng)論
1.?re: 找了一天的jsp格式化工具,最后還是用回workshop
nb@2
--3
2.?re: 一個(gè)以前沒有注意的問題:java構(gòu)造函數(shù)的執(zhí)行順序
不錯(cuò),很有幫助
--王鵬飛
3.?re: 一個(gè)新java web項(xiàng)目入手過程總結(jié)
標(biāo)記一下。
--何楊
4.?re: 單元測(cè)試究竟是測(cè)試什么?[未登錄]
單元測(cè)試是在測(cè)邏輯,包括條件判定,循環(huán)等。博主的這段代碼不包括任何邏輯,當(dāng)然不需要用單元測(cè)試去覆蓋。
--王輝
5.?re: 找了一天的jsp格式化工具,最后還是用回workshop
傻逼
--2
閱讀排行榜
1.?一個(gè)新java web項(xiàng)目入手過程總結(jié)(8499)
2.?一個(gè)以前沒有注意的問題:java構(gòu)造函數(shù)的執(zhí)行順序(8198)
3.?找了一天的jsp格式化工具,最后還是用回workshop(7382)
4.?dwr reverse-ajax 實(shí)例解析(6603)
5.?Spring+hibernate 單元測(cè)試框架總結(jié)(6239)
評(píng)論排行榜
1.?不仁義,不仗義(24)
2.?招聘java程序員,系統(tǒng)架構(gòu)師(20)
3.?dwr reverse-ajax 實(shí)例解析(11)
4.?找了一天的jsp格式化工具,最后還是用回workshop(10)
5.?單元測(cè)試究竟是測(cè)試什么?(10)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 rocket
主站蜘蛛池模板:
一级视频在线免费观看
|
国产乱辈通伦影片在线播放亚洲
|
国产黄在线播放免费观看
|
2017亚洲男人天堂一
|
亚洲欧洲免费视频
|
久久亚洲国产精品五月天婷
|
在线观看免费精品国产
|
青青在线久青草免费观看
|
华人在线精品免费观看
|
国产黄片不卡免费
|
成人免费网站久久久
|
亚洲啪AV永久无码精品放毛片
|
亚洲欧洲自拍拍偷综合
|
亚洲成色在线综合网站
|
日韩一卡2卡3卡4卡新区亚洲
|
色www永久免费视频
|
国产卡二卡三卡四卡免费网址
|
四虎永久在线精品免费观看视频
|
免费人成激情视频在线观看冫
|
亚洲女同成人AⅤ人片在线观看
|
亚洲国产视频久久
|
亚洲精品永久www忘忧草
|
久久久亚洲精品视频
|
亚洲日本va在线视频观看
|
国产成人精品日本亚洲专区61
|
亚洲国产成+人+综合
|
亚洲国产成人综合
|
亚洲国产美女精品久久
|
亚洲欧洲校园自拍都市
|
亚洲香蕉免费有线视频
|
老色鬼久久亚洲AV综合
|
亚洲一区影音先锋色资源
|
中文字幕亚洲色图
|
亚洲成人一级电影
|
亚洲人成网站日本片
|
久久亚洲精品国产亚洲老地址
|
亚洲国产日韩a在线播放
|
亚洲AV无码AV男人的天堂不卡
|
亚洲欧美自偷自拍另类视
|
国产精品亚洲а∨无码播放麻豆
|
国产亚洲漂亮白嫩美女在线
|