解决java+ajax的乱码问题

解决java+ajax的乱码问题

login.jsp代码清单如下:

<% @ page language="java" contentType="text/html;charset=utf-8" %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
  
< head >
    
< title > login </ title >
    
< script  language ="javascript" >
        
//创建xmlhttprequest对象
        var xmlHttp = false;
        
try{
            xmlHttp 
= new ActiveXObject("Msxml2.XMLHTTP");
        }
catch(e){
            
try{
                xmlHttp 
= new ActiveXObject("microsoft.XMLHTTP");
            }
catch(e1){
                
try{
                    xmlHttp 
= new XMLHttpRequest();
                }
catch(e2){
                    xmlHttp 
= false;
                }
    
            }

        }

        
if(!xmlHttp)
        
{
            alert(
"server is error");
        }

        
function login()
        
{
            
var userName = document.getElementById("userName");
            
var pwd = document.getElementById("pwd");
            
if(userName.value == 0 || pwd.value == 0)
            
{
                alert(
"请输入用户名或密码!");
                userName.focus();
                
return false;
            }

            
else
            
{
                
//注意这个提交的地址,传递的参数都放在encodeURI()函数当中,它把字符串做为一个uri进行编码,最大的一个好处就是可以处理中文乱码
                var url="http://localhost:8080/ajaxXML/loginServlet?userName="+encodeURI(userName.value)+"&pwd="+encodeURI(pwd.value);
                xmlHttp.open(
"GET",url,true);
                xmlHttp.onreadyStatechange 
= show;
                xmlHttp.send(
null);
                document.getElementById(
"message").innerHTML="正在登录,请稍后..........";
            }

        }

        
function show()
        
{
            
if(xmlHttp.readyState == 4)//响应与完成,可以访问服务器并响应它
            {
                
if(xmlHttp.status == 200)//响应状态一切顺利
                {
                    
var xmlDOM = xmlHttp.responseText;                
                    document.getElementById(
"message").innerHTML = xmlDOM;
                }

            }

        }

    
</ script >
    
< style  type ="text/css" >
    <!--
    body
    
{
        padding
:1em 2em 3em 4em;
    
}

    input
    
{
        font-size
:10px;        
    
}

    div
    
{
        font-size
:15px;
        color
:red;
    
}

    -->
    
</ style >
  
</ head >
  
< body >
  
< center >
      
< div  id ="message" ></ div >
      
< table  align ="center"  cellPadding ="0"  cellSpacing ="1"  bgcolor ="blue"  width ="180" >
      
< tr  bgcolor ="#ffffff" >
        
< td > userName: </ td >< td >< input  type ="text"  id ="userName"  name ="userName" /></ td >      
      
</ tr >
      
< tr  bgcolor ="#ffffff" >
        
< td > password: </ td >< td >< input  type ="password"  id ="pwd"  name ="pwd" /></ td >      
      
</ tr >
      
< tr  bgcolor ="#ffffff"  align ="center" >
          
< td  colspan ="2" >< input  align ="center"  type ="button"  value ="login"  onclick ="return login();" /></ td >
      
</ tr >
      
</ table >
  
</ center >
  
</ body >
</ html >
LoginServlet 代码如下:
public   void  doGet(HttpServletRequest request, HttpServletResponse response)
            
throws  ServletException, IOException  {
        
//注意这句代码,设置服务器响应客户端时的编码格式,注意要写GBK
        response.setContentType("text/html;charset=GBK");
        PrintWriter out 
= response.getWriter();
        String userName
=request.getParameter("userName");
        String pwd 
= request.getParameter("pwd");
        
if(userName.equals("陈涛"&& pwd.equals("chen")){
            out.print(
"登录成功");
        }
else{
            out.print(
"登录失败");
        }

        out.flush();
        out.close();
    }

有兴趣的朋友可以试一下,不管是请求处理乱码还是响应信息乱码都可以处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值