package com.eiyoung.wechat.web.controller; 

  import java.io.IOException; 

 import java.io.PrintWriter; 

 import java.util.Date; 

 import javax.servlet.ServletException; 

 import javax.servlet.http.HttpServlet; 

 import javax.servlet.http.HttpServletRequest; 

 import javax.servlet.http.HttpServletResponse; 

 import com.eiyoung.wechat.web.utils.Message; 

 import com.eiyoung.wechat.web.utils.ReplyMessage; 

 import org.apache.commons.io.IOUtils; 

 import com.thoughtworks.xstream.XStream; 

 import com.thoughtworks.xstream.io.xml.DomDriver; 

 public class WeChat extends HttpServlet { 

     private static final long serialVersionUID = 1L; 

     public WeChat() { 

         super(); 

      * 验证 

      * @param request 

      * @param response 

      * @throws ServletException 

      * @throws IOException 

     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

         response.setContentType("text/html;charset=UTF-8"); 

         PrintWriter pw = response.getWriter(); 

         String echo = request.getParameter("echostr"); 

         System.out.print(echo); 

         echo = new String(echo.getBytes("ISO-8859-1"),"UTF-8"); 

         pw.println(echo); 

     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

        response.setContentType("text/html;charset=UTF-8"); 

         PrintWriter pw = response.getWriter(); 

         String wxMsgXml = IOUtils.toString(request.getInputStream(),"utf-8"); 

         Message textMsg = null; 

         try { 

             textMsg = getMessage(wxMsgXml); 

         } catch (Exception e) { 

             e.printStackTrace(); 

         StringBuffer replyMsg = new StringBuffer(); 

         if(textMsg != null){ 

             //增加你所需要的处理逻辑,这里只是简单重复消息 

             replyMsg.append("您给我的消息是:"); 

             replyMsg.append(textMsg.getContent()); 

         else{ 

             replyMsg.append(":)不是文本的消息,我暂时看不懂"); 

         } 

         String returnXml = getReplyMessage(replyMsg.toString(), textMsg.getFromUserName(),textMsg.getToUserName()); 

         System.out.print(textMsg.toString()); 

         System.out.print(returnXml.toString()); 

         pw.println(returnXml); 

     private Message getMessage(String xml){ 

         XStream xstream = new XStream(new DomDriver()); 

         xstream.alias("xml", Message.class); 

         xstream.aliasField("ToUserName", Message.class, "toUserName"); 

         xstream.aliasField("FromUserName", Message.class, "fromUserName"); 

         xstream.aliasField("CreateTime", Message.class, "createTime"); 

         xstream.aliasField("MsgType", Message.class, "messageType"); 

         xstream.aliasField("Content", Message.class, "content"); 

         xstream.aliasField("MsgId", Message.class, "msgId"); 

         Message Message = (Message)xstream.fromXML(xml); 

         return Message; 

     private String getReplyMessage(String replyMsg,String toUserName,String fromUserName){ 

         ReplyMessage we = new ReplyMessage(); 

         we.setMessageType("text"); 

         we.setFuncFlag("0"); 

         we.setCreateTime(new Long(new Date().getTime()).toString()); 

         we.setContent(replyMsg); 

         we.setToUserName(toUserName); 

         we.setFromUserName(fromUserName); 

         XStream xstream = new XStream(new DomDriver()); 

         xstream.alias("xml", ReplyMessage.class); 

         xstream.aliasField("ToUserName", ReplyMessage.class, "toUserName"); 

         xstream.aliasField("FromUserName", ReplyMessage.class, "fromUserName"); 

         xstream.aliasField("CreateTime", ReplyMessage.class, "createTime"); 

         xstream.aliasField("MsgType", ReplyMessage.class, "messageType"); 

         xstream.aliasField("Content", ReplyMessage.class, "content"); 

         xstream.aliasField("FuncFlag", ReplyMessage.class, "funcFlag"); 

         String xml =xstream.toXML(we); 

         return xml; 

 package com.eiyoung.wechat.web.utils; 

  * Created with IntelliJ IDEA. 

  * User: sb 

  * Date: 8/1/13 

  * Time: 10:37 PM 

  * To change this template use File | Settings | File Templates. 

 public class ReplyMessage { 

     private String FuncFlag;//消息编号 

     private String fromUserName;//发送人 

     private String toUserName;//接收人 

     private String content;//内容 

     private String messageType;//消息类型 

     private String createTime;//创建日期 

     public String getContent() { 

         return content; 

     public void setContent(String content) { 

         this.content = content; 

     public String getMessageType() { 

         return messageType; 

     public void setMessageType(String messageType) { 

         this.messageType = messageType; 

     public String getFromUserName() { 

         return fromUserName; 

     public void setFromUserName(String fromUserName) { 

         this.fromUserName = fromUserName; 

     public String getToUserName() { 

         return toUserName; 

     public void setToUserName(String toUserName) { 

         this.toUserName = toUserName; 

      public String getCreateTime() { 

         return createTime; 

     public void setCreateTime(String createTime) { 

         this.createTime = createTime; 

     public String getFuncFlag() { 

         return FuncFlag; 

  http://www.huiyi8.com/tishiyin/ 
  
提示音音效大全 

     public void setFuncFlag(String funcFlag) { 

         FuncFlag = funcFlag; 

   

     public String toString(){ 

         return "createTime:"+getCreateTime()+"\ntoUserName:"+getToUserName()+"\n FromUserName:"+getFromUserName()+"\nmessageType:"+getMessageType()+"\ncontent:"+getContent(); 

 package com.eiyoung.wechat.web.utils; 

 import java.util.Date; 

  * Created with IntelliJ IDEA. 

  * User: sb 

  * Date: 8/1/13 

  * Time: 10:37 PM 

  * To change this template use File | Settings | File Templates. 

 public class Message { 

     private String msgId;//消息编号 

     private String fromUserName;//发送人 

     private String toUserName;//接收人 

     private String content;//内容 

     private String messageType;//消息类型 

     private String createTime;//创建日期 

     public String getContent() { 

         return content; 

     public void setContent(String content) { 

         this.content = content; 

     public String getMessageType() { 

         return messageType; 

     public void setMessageType(String messageType) { 

         this.messageType = messageType; 

     public String getFromUserName() { 

         return fromUserName; 

     public void setFromUserName(String fromUserName) { 

         this.fromUserName = fromUserName; 

     public String getToUserName() { 

         return toUserName; 

     public void setToUserName(String toUserName) { 

         this.toUserName = toUserName; 

     public String getCreateTime() { 

         return createTime; 

     public void setCreateTime(String createTime) { 

         this.createTime = createTime; 

     public String getMsgId() { 

         return msgId; 

     public void setMsgId(String msgId) { 

         this.msgId = msgId; 

     public String toString(){ 

         return "msgId:"+getMsgId()+"\ncreateTime:"+getCreateTime()+"\ntoUserName:"+getToUserName()+"\n FromUserName:"+getFromUserName()+"\nmessageType:"+getMessageType()+"\ncontent:"+getContent(); 

 maven 

  <dependencies> 

     <dependency> 

       <groupId>junit</groupId> 

       <artifactId>junit</artifactId> 

       <version>3.8.1</version> 

       <scope>test</scope> 

     </dependency> 

     <dependency> 

       <groupId>javax.servlet</groupId> 

       <artifactId>servlet-api</artifactId> 

       <version>3.0-alpha-1</version> 

     </dependency> 

       <dependency> 

           <groupId>joda-time</groupId> 

           <artifactId>joda-time</artifactId> 

           <version>2.2</version> 

       </dependency> 

       <dependency> 

           <groupId>org.apache.commons</groupId> 

           <artifactId>commons-io</artifactId> 

           <version>1.3.2</version> 

       </dependency> 

       <dependency> 

           <groupId>com.thoughtworks.xstream</groupId> 

           <artifactId>xstream</artifactId> 

           <version>1.4.3</version> 

       </dependency> 

   </dependencies>