rocket
走在agile的小路上
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-55 評論-208 文章-0 trackbacks-0
最近估計是和utf-8干上了,今天又搞定一個ajax的編碼問題
今天開始試用ajax最為項目的輔助,本來開始很順利,測試的內容也比較簡單
先在一個jsp中加入ajax的引擎
//
ajax?引擎
????<script language="javascript">
????var?http_request?
=
?
false
;
????var?currentPos?
=
?
null
;
????function?send_request(url)?
{
//
初始化、指定處理函數、發送請求的函數
????????http_request?
=
?
false
;
????????
//
開始初始化XMLHttpRequest對象
????????
if
(window.XMLHttpRequest)?
{?
//
Mozilla?瀏覽器
????????????http_request?
=
?
new
?XMLHttpRequest();
????????????
if
?(http_request.overrideMimeType)?
{
//
設置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)?
{?
//
?異常,創建對象實例失敗
????????????window.alert(
"
不能創建XMLHttpRequest對象實例.
"
);
????????????
return
?
false
;
????????}
????????
????????http_request.onreadystatechange?
=
?processRequest;
????????
//
?確定發送請求的方式和URL以及是否同步執行下段代碼
????????
????????http_request.open(
"
POST
"
,?url,?
true
);
????????http_request.setRequestHeader(
"
Content-Type
"
,
"
application/x-www-form-urlencoded
"
);
????????????
????????http_request.send(
null
);
????}
????
//
?處理返回信息的函數
????function?processRequest()?
{
????????
if
?(http_request.readyState?
==
?
4
)?
{?
//
?判斷對象狀態
?????????????
????????????
if
?(http_request.status?
==
?
200
)?
{?
//
?信息已經成功返回,開始處理信息
????????????????
????????????????
????????????????
????????????????document.getElementById(currentPos).innerHTML?
=
?http_request.responseText;
????????????}
?
else
?
{?
//
頁面不正常
????????????????alert(
"
http_request.status?exception?code:
"
+
http_request.status);
????????????}
????????}
????}
</script>
然后在jsp中做個測試的select,和用于顯示ajax的回傳數據的區域
<
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>
再寫一個js用了作為事件的觸發
<
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>
?再另外寫一個資源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(
"
總經理皮總<br> 副總經理老皮
"
);
else
?
if
(
"
test2
"
.equals(playPos))?out.println(
"
總工程師<br> 軟件工程師
"
);
else
?
if
(
"
test3
"
.equals(playPos))?out.println(
"
總工程師張青與<br> 軟件工程師味蕾
"
);
else
?
if
(
"
test4
"
.equals(playPos))?out.println(
"
總工程師張遲斌<br> 軟件工程師章魚
"
);
%>
兩個jsp的編碼都是utf-8的,但是在測試時發現回傳回來的responseText都是亂碼
去google上找,原來http_request?這個對象在request和response都是以gb2312進行的,需要更改編碼
但是可惡的是javascript沒有提供更改http_request?編碼的方法于是在網上找了一個vbscript的函數
<
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
>
?
然后對回傳回來的http_request?進行一下編碼更改
????
//
?處理返回信息的函數
????function?processRequest()?
{
????????
if
?(http_request.readyState?
==
?
4
)?
{?
//
?判斷對象狀態
?????????????
????????????
if
?(http_request.status?
==
?
200
)?
{?
//
?信息已經成功返回,開始處理信息
????????????????
????????????????URLEncoding(http_request.responseBody);
????????????????
????????????????document.getElementById(currentPos).innerHTML?
=
?http_request.responseText;
????????????}
?
else
?
{?
//
頁面不正常
????????????????alert(
"
http_request.status?exception?code:
"
+
http_request.status);
????????????}
????????}
????}
最終終于可以正常顯示中文了
這兩天和編碼的糾纏有一個深刻的體會:做中國人難啊,要是計算機是中國人發明的多好:)
注:這種方法只在IE上試驗過,別的瀏覽器還沒有試
posted on 2006-04-13 20:14
rocket
閱讀(1483)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Dict.CN 在線詞典, 英語學習, 在線翻譯
QQ:19794405
agilelife分享群:59765983
QQ上少了,請大家加入msn group:
agilelife@groups.msn.com
敏捷項目實踐經驗分享
TDD,重構,迭代,結對
<
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
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(7)
給我留言
查看公開留言
查看私人留言
我參與的團隊
深圳Java俱樂部(0/0)
隨筆分類
(15)
UI相關
好文翻譯(1)
常用框架(1)
敏捷方法(4)
數據庫相關
構架設計(2)
經驗積累(3)
項目管理(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)
相冊
rocket
搜索
積分與排名
積分 - 133228
排名 - 464
最新評論
1.?re: 找了一天的jsp格式化工具,最后還是用回workshop
nb@2
--3
2.?re: 一個以前沒有注意的問題:java構造函數的執行順序
不錯,很有幫助
--王鵬飛
3.?re: 一個新java web項目入手過程總結
標記一下。
--何楊
4.?re: 單元測試究竟是測試什么?[未登錄]
單元測試是在測邏輯,包括條件判定,循環等。博主的這段代碼不包括任何邏輯,當然不需要用單元測試去覆蓋。
--王輝
5.?re: 找了一天的jsp格式化工具,最后還是用回workshop
傻逼
--2
閱讀排行榜
1.?一個新java web項目入手過程總結(8499)
2.?一個以前沒有注意的問題:java構造函數的執行順序(8197)
3.?找了一天的jsp格式化工具,最后還是用回workshop(7382)
4.?dwr reverse-ajax 實例解析(6603)
5.?Spring+hibernate 單元測試框架總結(6239)
評論排行榜
1.?不仁義,不仗義(24)
2.?招聘java程序員,系統架構師(20)
3.?dwr reverse-ajax 實例解析(11)
4.?找了一天的jsp格式化工具,最后還是用回workshop(10)
5.?單元測試究竟是測試什么?(10)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 rocket
主站蜘蛛池模板:
亚洲最大av无码网址
|
亚洲第一区精品观看
|
久久久久亚洲精品日久生情
|
三级网站免费观看
|
亚洲av中文无码乱人伦在线r▽
|
岛国精品一区免费视频在线观看
|
亚洲精品无码专区2
|
一区二区三区视频免费观看
|
国产日韩成人亚洲丁香婷婷
|
中文字幕版免费电影网站
|
亚洲国产精品福利片在线观看
|
可以免费观看的毛片
|
337p欧洲亚洲大胆艺术
|
在线免费观看你懂的
|
亚洲AV无码专区在线亚
|
国产美女精品久久久久久久免费
|
美女羞羞免费视频网站
|
久久精品国产亚洲Aⅴ香蕉
|
国产一级片免费看
|
亚洲免费闲人蜜桃
|
国产一区二区三区在线免费
|
国产VA免费精品高清在线
|
亚洲国产精品无码专区
|
一色屋成人免费精品网站
|
日韩色视频一区二区三区亚洲
|
久久激情亚洲精品无码?V
|
91精品国产免费入口
|
久久亚洲精品无码网站
|
亚洲桃色AV无码
|
一二三四免费观看在线视频中文版
|
h片在线免费观看
|
亚洲精华国产精华精华液好用
|
亚洲美女高清一区二区三区
|
国产精品内射视频免费
|
久久精品国产亚洲AV无码娇色
|
亚洲av成本人无码网站
|
亚洲A丁香五香天堂网
|
最近2019中文字幕免费大全5
|
亚洲精品GV天堂无码男同
|
亚洲gv猛男gv无码男同短文
|
成年人免费观看视频网站
|