public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/xml;charset=utf-8");
PrintWriter out = response.getWriter();

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

//获取url地址传来的参数
String account=request.getParameter("account");
String password=request.getParameter("password");


System.out.println("status cha kan");

    
out.println("<?xml version='1.0' encoding='utf-8' ?><returnsms>");

//输出返回的接收状态信息
if(!(null==account||null==password))
{
if(!("".equals(account)||"".equals(password)))
{
//解码
account=URLDecoder.decode(new String(account.getBytes("ISO-8859-1"),"utf-8"),"utf-8");
password=URLDecoder.decode(new String(password.getBytes("ISO-8859-1"),"utf-8"),"utf-8");
//判断用户名密码
if(account.equals("qq")&&password.equals("123"))
{
        MessageEntity me=new MessageEntity();
 
        if(!AllLinkedList.phoneReciveLink.isEmpty())
        {
        
           AllLinkedList.prsize=AllLinkedList.phoneReciveLink.size();
            
           
            for (int j = 0; j < AllLinkedList.prsize; j++) {
            
             me=AllLinkedList.phoneReciveLink.removeFirst();
        
             out.println("<statusbox>");          out.println("<mobile>"+me.getBSenderMDN().trim()+"</mobile>");          out.println("<taskid>"+me.getBsmsID()+"</taskid>");
             
         if(me.getBsmsResult().equals("000"))
         {
         out.println("<status>10</status>");
         }
         else
         {
         out.println("<status>20</status>");
         }
                 
         out.println("<receivetime>"+me.getReceivetime()+"</receivetime>");
        
         out.println("<errorcode>"+me.getBsmsResult()+"</errorcode>");
        
         out.println("<extno>1903</extno>");
        
         out.println("</statusbox>");
        
         out.flush();
        
//          int i=AllLinkedList.s;
//         
//          if(i==0)
//          {
//          AllLinkedList.phoneReciveLink.add(me);
//          AllLinkedList.s=1;
//          }
        
         System.out.println("ReqNo:"+me.getHmesgReqNo()+"\tmesgType:"+me.getBmesgType()+"\tSenderMDN:"+me.getBSenderMDN()+"\tRecverMDN"+me.getBRecverMDN()+"\tsmsID:"+me.getBsmsID()+"\tsmsResult"+me.getBsmsResult()+"\t"); }
         System.out.println("ppppsize:"+AllLinkedList.phoneReciveLink.size());
 
        }
        
}
else
{
out.println("<errorstatus>");
out.println("<error>"+"2"+"</error>");
out.println("<re>用户名或密码错误</re>");
out.println("</errorstatus>");

}
}
else
{
out.println("<errorstatus>");
out.println("<error>"+"1"+"</error>");
out.println("<re>用户名或密码不能为空</re>");
out.println("</errorstatus>");

}

}
else
{
out.println("<errorstatus>");
out.println("<error>"+"4"+"</error>");
out.println("<re>"+"参数不正确"+"</re>");
out.println("</errorstatus>");

}

out.println("</returnsms>\r\n");


out.flush();
out.close();
}这是一个servlet里的代码,我是通过url地址访问这个servlet的,然后获取out.println();的值,现在有一个问题就是,我在浏览器里直接访问这个url地址,如果队列里有值的话我能够在浏览器中看到,没值就只显示开头和结尾了!
有一个短信操作的平台,是用C#做的,我自己在Java里调用这个url地址的时候可以获得值,但是不知道为什么在这个短信操作的平台上就获取不到我的值了!我自己测试了半天,发现好像是他第一次访问我这个url地址的时候娶不到我的值,第二次的时候才可以取到!可是我是使用的队列存的值,第一次访问的时候值已经取出去了!第二次就没值了!现在想问下这中间是因为什么原因而让他第一次取不到我的值呢?我代码里有什么问题吗?各位大牛们帮忙给看下!Java

解决方案 »

  1.   

    现在有一个问题就是,我在浏览器里直接访问这个url地址,如果队列里有值的话我能够在浏览器中看到,没值就只显示开头和结尾了!没值不现实头尾显示什么?==============================
    我自己测试了半天,发现好像是他第一次访问我这个url地址的时候娶不到我的值,第二次的时候才可以取到!可是我是使用的队列存的值,第一次访问的时候值已经取出去了!第二次就没值了后台打个log看看
      

  2.   

    管理的平台我看不到代码的!只能看到我自己写的这个项目里的数据!我在代码里 System.out.println("ReqNo:"+me.getHmesgReqNo()+"\tmesgType:"+me.getBmesgType()+"\tSenderMDN:"+me.getBSenderMDN()+"\tRecverMDN"+me.getBRecverMDN()+"\tsmsID:"+me.getBsmsID()+"\tsmsResult"+me.getBsmsResult()+"\t");里是可以看到输出的,但是管理的平台上面却收不信息!