點擊後打開新頁面,用戶登錄!用戶名爲中文時,火狐、google瀏覽器無問題,但IE有亂碼問題:
問題代碼:
- <a href="member!sysLogin.do?name='${member.uname }'" target="_blank" />登錄</a>
<a href="member!sysLogin.do?name='${member.uname }'" target="_blank" />登錄</a>
超鏈接形式的傳參,都是Get方式!
- public String sysLogin(){
- try{
- name=new String(name.getBytes("iso-8859-1"),"utf-8");
- int r = this.memberManager.loginbysys(name);
- if(r==1){
- return "syslogin";
- }
- this.msgs.add("登錄失敗");
- }catch(RuntimeException e){
- this.msgs.add(e.getMessage());
- } catch (UnsupportedEncodingException e) {
- this.msgs.add(e.getMessage());
- }
- return this.MESSAGE;
- }
public String sysLogin(){
try{
name=new String(name.getBytes("iso-8859-1"),"utf-8");
int r = this.memberManager.loginbysys(name);
if(r==1){
return "syslogin";
}
this.msgs.add("登錄失敗");
}catch(RuntimeException e){
this.msgs.add(e.getMessage());
} catch (UnsupportedEncodingException e) {
this.msgs.add(e.getMessage());
}
return this.MESSAGE;
}
修改成功:
- <a href="javascript:toSysLogin('${member.uname }');" />登錄</a>
- function toSysLogin(name){
- var uriname="member!sysLogin.do?name="+name;
- window.open( encodeURI(uriname));
- }
<a href="javascript:toSysLogin('${member.uname }');" />登錄</a>
function toSysLogin(name){
var uriname="member!sysLogin.do?name="+name;
window.open( encodeURI(uriname));
}
- public String sysLogin(){
- try{
- this.setName(java.net.URLDecoder.decode(name, "UTF-8"));// 此處轉碼
- name=new String(name.getBytes("iso-8859-1"),"utf-8");
- int r = this.memberManager.loginbysys(name);
- if(r==1){
- return "syslogin";
- }
- this.msgs.add("登錄失敗");
- }catch(RuntimeException e){
- this.msgs.add(e.getMessage());
- } catch (UnsupportedEncodingException e) {
- this.msgs.add(e.getMessage());
- }
- return this.MESSAGE;
- }
public String sysLogin(){
try{
this.setName(java.net.URLDecoder.decode(name, "UTF-8"));// 此處轉碼
name=new String(name.getBytes("iso-8859-1"),"utf-8");
int r = this.memberManager.loginbysys(name);
if(r==1){
return "syslogin";
}
this.msgs.add("登錄失敗");
}catch(RuntimeException e){
this.msgs.add(e.getMessage());
} catch (UnsupportedEncodingException e) {
this.msgs.add(e.getMessage());
}
return this.MESSAGE;
}
問題解決!
encode編碼
decode解碼