{"id":28589,"date":"2024-11-25T13:23:02","date_gmt":"2024-11-25T05:23:02","guid":{"rendered":"https:\/\/fwq.ai\/blog\/28589\/"},"modified":"2024-11-25T13:23:02","modified_gmt":"2024-11-25T05:23:02","slug":"%e5%88%86%e4%ba%abjava%e7%89%88%e5%be%ae%e4%bf%a1%e6%9c%ba%e5%99%a8%e4%ba%ba%e7%9a%84%e5%ae%9e%e7%8e%b0%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/28589\/","title":{"rendered":"\u5206\u4eabjava\u7248\u5fae\u4fe1\u673a\u5668\u4eba\u7684\u5b9e\u73b0\u65b9\u6cd5"},"content":{"rendered":"<pre>&nbsp;&nbsp;&nbsp;\r\nimport&nbsp;java.io.IOException;\r\nimport&nbsp;java.io.PrintWriter;\r\nimport&nbsp;java.util.Date;\r\n&nbsp;&nbsp;&nbsp;\r\nimport&nbsp;javax.servlet.ServletException;\r\nimport&nbsp;javax.servlet.http.HttpServlet;\r\nimport&nbsp;javax.servlet.http.HttpServletRequest;\r\nimport&nbsp;javax.servlet.http.HttpServletResponse;\r\n&nbsp;&nbsp;&nbsp;\r\nimport&nbsp;com.eiyoung.wechat.web.utils.Message;\r\nimport&nbsp;com.eiyoung.wechat.web.utils.ReplyMessage;\r\nimport&nbsp;org.apache.commons.io.IOUtils;\r\n&nbsp;&nbsp;&nbsp;\r\nimport&nbsp;com.thoughtworks.xstream.XStream;\r\nimport&nbsp;com.thoughtworks.xstream.io.xml.DomDriver;\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;\r\npublic&nbsp;class&nbsp;WeChat&nbsp;extends&nbsp;HttpServlet&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L;\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;WeChat()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u9a8c\u8bc1\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;request\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;response\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;ServletException\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;IOException\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(\"text\/html;charset=UTF-8\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter&nbsp;pw&nbsp;=&nbsp;response.getWriter();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;echo&nbsp;=&nbsp;request.getParameter(\"echostr\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(echo);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;=&nbsp;new&nbsp;String(echo.getBytes(\"ISO-8859-1\"),\"UTF-8\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(echo);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(\"text\/html;charset=UTF-8\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter&nbsp;pw&nbsp;=&nbsp;response.getWriter();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;wxMsgXml&nbsp;=&nbsp;IOUtils.toString(request.getInputStream(),\"utf-8\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Message&nbsp;textMsg&nbsp;=&nbsp;null;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textMsg&nbsp;=&nbsp;getMessage(wxMsgXml);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;replyMsg&nbsp;=&nbsp;new&nbsp;StringBuffer();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(textMsg&nbsp;!=&nbsp;null){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u589e\u52a0\u4f60\u6240\u9700\u8981\u7684\u5904\u7406\u903b\u8f91\uff0c\u8fd9\u91cc\u53ea\u662f\u7b80\u5355\u91cd\u590d\u6d88\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replyMsg.append(\"\u60a8\u7ed9\u6211\u7684\u6d88\u606f\u662f\uff1a\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replyMsg.append(textMsg.getContent());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replyMsg.append(\":)\u4e0d\u662f\u6587\u672c\u7684\u6d88\u606f\uff0c\u6211\u6682\u65f6\u770b\u4e0d\u61c2\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;returnXml&nbsp;=&nbsp;getReplyMessage(replyMsg.toString(),&nbsp;textMsg.getFromUserName(),textMsg.getToUserName());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(textMsg.toString());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(returnXml.toString());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(returnXml);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Message&nbsp;getMessage(String&nbsp;xml){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XStream&nbsp;xstream&nbsp;=&nbsp;new&nbsp;XStream(new&nbsp;DomDriver());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.alias(\"xml\",&nbsp;Message.class);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"ToUserName\",&nbsp;Message.class,&nbsp;\"toUserName\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"FromUserName\",&nbsp;Message.class,&nbsp;\"fromUserName\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"CreateTime\",&nbsp;Message.class,&nbsp;\"createTime\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"MsgType\",&nbsp;Message.class,&nbsp;\"messageType\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"Content\",&nbsp;Message.class,&nbsp;\"content\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"MsgId\",&nbsp;Message.class,&nbsp;\"msgId\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Message&nbsp;Message&nbsp;=&nbsp;(Message)xstream.fromXML(xml);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Message;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;getReplyMessage(String&nbsp;replyMsg,String&nbsp;toUserName,String&nbsp;fromUserName){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReplyMessage&nbsp;we&nbsp;=&nbsp;new&nbsp;ReplyMessage();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we.setMessageType(\"text\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we.setFuncFlag(\"0\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we.setCreateTime(new&nbsp;Long(new&nbsp;Date().getTime()).toString());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we.setContent(replyMsg);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we.setToUserName(toUserName);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we.setFromUserName(fromUserName);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XStream&nbsp;xstream&nbsp;=&nbsp;new&nbsp;XStream(new&nbsp;DomDriver());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.alias(\"xml\",&nbsp;ReplyMessage.class);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"ToUserName\",&nbsp;ReplyMessage.class,&nbsp;\"toUserName\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"FromUserName\",&nbsp;ReplyMessage.class,&nbsp;\"fromUserName\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"CreateTime\",&nbsp;ReplyMessage.class,&nbsp;\"createTime\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"MsgType\",&nbsp;ReplyMessage.class,&nbsp;\"messageType\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"Content\",&nbsp;ReplyMessage.class,&nbsp;\"content\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xstream.aliasField(\"FuncFlag\",&nbsp;ReplyMessage.class,&nbsp;\"funcFlag\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;xml&nbsp;=xstream.toXML(we);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;xml;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;\r\n}\r\n&nbsp;&nbsp;&nbsp;\r\n===========================================================================\r\npackage&nbsp;com.eiyoung.wechat.web.utils;\r\n&nbsp;&nbsp;&nbsp;\r\n\/**\r\n&nbsp;*&nbsp;Created&nbsp;with&nbsp;IntelliJ&nbsp;IDEA.\r\n&nbsp;*&nbsp;User:&nbsp;sb\r\n&nbsp;*&nbsp;Date:&nbsp;8\/1\/13\r\n&nbsp;*&nbsp;Time:&nbsp;10:37&nbsp;PM\r\n&nbsp;*&nbsp;To&nbsp;change&nbsp;this&nbsp;template&nbsp;use&nbsp;File&nbsp;|&nbsp;Settings&nbsp;|&nbsp;File&nbsp;Templates.\r\n&nbsp;*\/\r\npublic&nbsp;class&nbsp;ReplyMessage&nbsp;{\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;FuncFlag;\/\/\u6d88\u606f\u7f16\u53f7\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;fromUserName;\/\/\u53d1\u9001\u4eba\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;toUserName;\/\/\u63a5\u6536\u4eba\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;content;\/\/\u5185\u5bb9\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;messageType;\/\/\u6d88\u606f\u7c7b\u578b\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;createTime;\/\/\u521b\u5efa\u65e5\u671f\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getContent()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;content;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setContent(String&nbsp;content)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.content&nbsp;=&nbsp;content;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getMessageType()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;messageType;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setMessageType(String&nbsp;messageType)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.messageType&nbsp;=&nbsp;messageType;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getFromUserName()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;fromUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setFromUserName(String&nbsp;fromUserName)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.fromUserName&nbsp;=&nbsp;fromUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getToUserName()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;toUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setToUserName(String&nbsp;toUserName)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.toUserName&nbsp;=&nbsp;toUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getCreateTime()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;createTime;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setCreateTime(String&nbsp;createTime)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.createTime&nbsp;=&nbsp;createTime;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getFuncFlag()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;FuncFlag;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setFuncFlag(String&nbsp;funcFlag)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FuncFlag&nbsp;=&nbsp;funcFlag;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;toString(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;\"createTime:\"+getCreateTime()+\"\\ntoUserName:\"+getToUserName()+\"\\n&nbsp;FromUserName:\"+getFromUserName()+\"\\nmessageType:\"+getMessageType()+\"\\ncontent:\"+getContent();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n&nbsp;&nbsp;&nbsp;\r\n===============================================================================\r\npackage&nbsp;com.eiyoung.wechat.web.utils;\r\n&nbsp;&nbsp;&nbsp;\r\nimport&nbsp;java.util.Date;\r\n&nbsp;&nbsp;&nbsp;\r\n\/**\r\n&nbsp;*&nbsp;Created&nbsp;with&nbsp;IntelliJ&nbsp;IDEA.\r\n&nbsp;*&nbsp;User:&nbsp;sb\r\n&nbsp;*&nbsp;Date:&nbsp;8\/1\/13\r\n&nbsp;*&nbsp;Time:&nbsp;10:37&nbsp;PM\r\n&nbsp;*&nbsp;To&nbsp;change&nbsp;this&nbsp;template&nbsp;use&nbsp;File&nbsp;|&nbsp;Settings&nbsp;|&nbsp;File&nbsp;Templates.\r\n&nbsp;*\/\r\npublic&nbsp;class&nbsp;Message&nbsp;{\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;msgId;\/\/\u6d88\u606f\u7f16\u53f7\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;fromUserName;\/\/\u53d1\u9001\u4eba\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;toUserName;\/\/\u63a5\u6536\u4eba\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;content;\/\/\u5185\u5bb9\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;messageType;\/\/\u6d88\u606f\u7c7b\u578b\r\n&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;createTime;\/\/\u521b\u5efa\u65e5\u671f\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getContent()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;content;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setContent(String&nbsp;content)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.content&nbsp;=&nbsp;content;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getMessageType()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;messageType;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setMessageType(String&nbsp;messageType)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.messageType&nbsp;=&nbsp;messageType;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getFromUserName()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;fromUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setFromUserName(String&nbsp;fromUserName)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.fromUserName&nbsp;=&nbsp;fromUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getToUserName()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;toUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setToUserName(String&nbsp;toUserName)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.toUserName&nbsp;=&nbsp;toUserName;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getCreateTime()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;createTime;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setCreateTime(String&nbsp;createTime)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.createTime&nbsp;=&nbsp;createTime;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getMsgId()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;msgId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setMsgId(String&nbsp;msgId)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.msgId&nbsp;=&nbsp;msgId;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;toString(){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;\"msgId:\"+getMsgId()+\"\\ncreateTime:\"+getCreateTime()+\"\\ntoUserName:\"+getToUserName()+\"\\n&nbsp;FromUserName:\"+getFromUserName()+\"\\nmessageType:\"+getMessageType()+\"\\ncontent:\"+getContent();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\n==============================================================================\r\nmaven\r\n&nbsp;&lt;dependencies&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupid&gt;junit&lt;\/groupid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactid&gt;junit&lt;\/artifactid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;3.8.1&lt;\/version&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;scope&gt;test&lt;\/scope&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupid&gt;javax.servlet&lt;\/groupid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactid&gt;servlet-api&lt;\/artifactid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;3.0-alpha-1&lt;\/version&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupid&gt;joda-time&lt;\/groupid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactid&gt;joda-time&lt;\/artifactid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;2.2&lt;\/version&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupid&gt;org.apache.commons&lt;\/groupid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactid&gt;commons-io&lt;\/artifactid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;1.3.2&lt;\/version&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupid&gt;com.thoughtworks.xstream&lt;\/groupid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactid&gt;xstream&lt;\/artifactid&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;1.4.3&lt;\/version&gt;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;&lt;\/dependencies&gt;<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5206\u4eabjava\u7248\u5fae\u4fe1\u673a\u5668\u4eba\u7684\u5b9e\u73b0\u65b9\u6cd5\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp;&nbsp; import&nbsp;java.io.IOException; import&nbsp;java.io.PrintWriter; import&nbsp;java.util.Date; &nbsp;&nbsp;&nbsp; import&nbsp;javax.servlet.ServletException; import&nbsp;javax.servlet.http.HttpServlet; import&nbsp;javax.servlet.http.HttpServletRequest; import&nbsp;javax.servlet.http.HttpServletResponse; &nbsp;&nbsp;&nbsp; import&nbsp;com.eiyoung.wechat.web.utils.Message; import&nbsp;com.eiyoung.wechat.web.utils.ReplyMessage; import&nbsp;org.apache.commons.io.IOUtils; &nbsp;&nbsp;&nbsp; import&nbsp;com.thoughtworks.xstream.XStream; import&nbsp;com.thoughtworks.xstream.io.xml.DomDriver; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public&nbsp;class&nbsp;WeChat&nbsp;extends&nbsp;HttpServlet&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;WeChat()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super(); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u9a8c\u8bc1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;request &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;response &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;ServletException &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws&nbsp;IOException &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(&#8220;text\/html;charset=UTF-8&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter&nbsp;pw&nbsp;=&nbsp;response.getWriter(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;echo&nbsp;=&nbsp;request.getParameter(&#8220;echostr&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(echo); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;=&nbsp;new&nbsp;String(echo.getBytes(&#8220;ISO-8859-1&#8243;),&#8221;UTF-8&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(echo); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;void&nbsp;doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(&#8220;text\/html;charset=UTF-8&#8243;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter&nbsp;pw&nbsp;=&nbsp;response.getWriter(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;wxMsgXml&nbsp;=&nbsp;IOUtils.toString(request.getInputStream(),&#8221;utf-8&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Message&nbsp;textMsg&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textMsg&nbsp;=&nbsp;getMessage(wxMsgXml); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;replyMsg&nbsp;=&nbsp;new&nbsp;StringBuffer(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(textMsg&nbsp;!=&nbsp;null){ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-28589","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=28589"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28589\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=28589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=28589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=28589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}