jsp传中文参数问题

看了好幾篇文, 對中文參數傳遞時會變亂碼終於有點頭緒, 所以就來分享一下,
其實用browser大大的方法是最簡單的解決方法, 建議初學者用這個先練習一下.
但就是要一個一個的改, 對於開發網站的不太好做, 所以分享一下我暫時的做法

os: Win2000 server + Tomcat 5.0.28 + JDK 1.4.2_07
*: 因為我都習慣用UTF-8, 所以檔案要是UTF-8格式(web.xml 和 server.xml 不用特意去改, 原本是怎樣就直接修改即可)
站台叫\mytest

參數傳遞可分為POST 和 GET

[POST]
用Filter, Tomcat 已經做了個例子, 直接拿來用,
在\jsp-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class
copy 到自己的站台\mytest\WEB-INF\classes\filters\裡,(如果package有變更時需要修改.java檔再編譯為.class來使用)
修改mytest\WEB-INF\web.xml, 新增以下的code
    <filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>
Tips: 如果多個站台都想用這個方法, 可以把filters\SetCharacterEncodingFilter.class 複製到{tomcat}\shared\classes裡, 再修改{有需要用的站台}\WEB-INF\web.xml, 新增以上的code

[GET]
就是用本title第一篇精靈大大的方法, 修改{tomcat}\conf\server.xml,
找到
<Connector port=80
or
<Connector port=8080

新增一句"URIEncoding="UTF-8"", 即
<Connector port=80
URIEncoding=
...略...照原來的, 不用動...
這樣, 用<form method="get">的話, 直接接收就已經是中文了, 如果用link 時, 就要先把中文部分先編碼, 如
<%String str = ;
str = java.net.URLEncoder.encode(str,);
%>
<a href=

直接接收即可

這樣, 基本上就解決了post和get的亂碼問題.

PS. 在修改web.xml 和 server.xml 後一定要記得重開Tomcat

[未解問題]
像shirley_wang 有提到, 用
<form method= enctype=>
還是不行

[我有問題]
browser wrote:
不過當初我最後的做法是使用 Filter 的方式
Filter 的做法就是:先判斷是使用那種傳遞方式( GET or POST),假若是用 GET 的方式就採用第一種 code;若使用POST 方式,就採用第二種 code。

請問browser大大, 如何在Filter裡判斷GET 還是 POST 呢?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值