{"id":33520,"date":"2024-11-25T10:07:50","date_gmt":"2024-11-25T02:07:50","guid":{"rendered":"https:\/\/fwq.ai\/blog\/33520\/"},"modified":"2024-11-25T10:07:50","modified_gmt":"2024-11-25T02:07:50","slug":"%e5%88%86%e4%ba%ab%e5%be%ae%e4%bf%a1%e5%b0%8f%e7%a8%8b%e5%ba%8f%e7%ad%be%e5%88%b0%e8%80%83%e5%8b%a4%e5%90%8e%e7%ab%af%e4%bb%a3%e7%a0%81","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/33520\/","title":{"rendered":"\u5206\u4eab\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u7b7e\u5230\u8003\u52e4\u540e\u7aef\u4ee3\u7801"},"content":{"rendered":"<\/p>\n<p>\u76f8\u5173\u63a8\u8350\uff1a\u300a\u300b<\/p>\n<h2>\u670d\u52a1\u7aef\u6e90\u7801<\/h2>\n<p>\u9274\u4e8e\u5f88\u591a\u5c0f\u4f19\u4f34\u7ed9\u6211\u79c1\u4fe1\uff0c\u8be2\u95ee\u5173\u4e8e\u540e\u7aef\u4ee3\u7801\u7684\u4e8b\u3002\u5f88\u5f00\u5fc3\u5f88\u5e2e\u52a9\u5230\u8fd9\u4e48\u591a\u4eba\u3002\u4f46\u4e4b\u524d\u7531\u4e8e\u67d0\u79cd\u539f\u56e0\u6ca1\u80fd\u5c06\u5176\u4e0e\u5ba2\u6237\u7aef\u4ee3\u7801\u4e00\u5e76\u53d1\u5e03\uff0c\u8fd9\u91cc\u5c06\u4ee3\u7801\u53d1\u5e03\u5230GitHub\u4e0a\uff0c\u8ba9\u5927\u5bb6\u65b9\u4fbf\u4e0b\u8f7d\u5b66\u4e60\u3002\u8fd9\u91cc\u7528\u7684\u662fJava Servlet \uff0c\u8fd0\u884c\u5728 Web \u670d\u52a1\u5668\u6216\u5e94\u7528\u670d\u52a1\u5668\u4e0a\u7684\u7a0b\u5e8f\uff0c\u4f5c\u4e3a\u6765\u81ea Web \u6d4f\u89c8\u5668\u6216\u5176\u4ed6 HTTP \u5ba2\u6237\u7aef\u7684\u8bf7\u6c42\u548c HTTP \u670d\u52a1\u5668\u4e0a\u7684\u6570\u636e\u5e93\u6216\u5e94\u7528\u7a0b\u5e8f\u4e4b\u95f4\u7684\u4e2d\u95f4\u5c42\u3002\u6570\u636e\u5e93\u4f7f\u7528\u7684\u662fMySQL\uff0c\u6301\u4e45\u5c42\u4f7f\u7528\u4e86JDBC\uff0cJava\u7684\u539f\u751fAPI\u3002\u6ca1\u6709\u4f7f\u7528\u6846\u67b6\uff0c\u65b9\u4fbf\u65b0\u624b\u5b66\u4e60\uff0c\u4e5f\u66f4\u80fd\u7406\u89e3web\u7684\u8fd0\u884c\u673a\u5236\u548c\u539f\u7406\u3002<br \/>GitHub\u5730\u5740\uff1a\u4f20\u9001\u95e8<br \/>\u8fd9\u91cc\u8981\u8bf4\u660e\u4e00\u4e0b\u5173\u952e\u7684\u4ee3\u7801\uff1a<\/p>\n<pre>\/**\n&nbsp;*&nbsp;Servlet&nbsp;implementation&nbsp;class&nbsp;Login\n&nbsp;*\/@WebServlet(\"\/Login\")public&nbsp;class&nbsp;Login&nbsp;extends&nbsp;HttpServlet&nbsp;{\n\tprivate&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L;\n\tprivate&nbsp;static&nbsp;final&nbsp;String&nbsp;APPID=\"xxxxxxxxxx\";\n\tprivate&nbsp;static&nbsp;final&nbsp;String&nbsp;SECRET=\"xxxxxxxxxxxxxxxxxxxxxxxxxx\";\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Default&nbsp;constructor.&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Login()&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub\n&nbsp;&nbsp;&nbsp;&nbsp;}\n\n\t\/**\n\t&nbsp;*&nbsp;@see&nbsp;HttpServlet#doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)\n\t&nbsp;*\/\n\tprotected&nbsp;void&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{\n\t\t\/\/\u00c9\u00e8\u00d6\u00c3\u00c7\u00eb\u00c7\u00f3\u00b1\u00e0\u00c2\u00eb\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(\"utf-8\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(\"text\/html;charset=utf-8\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/*&nbsp;\u00c9\u00e8\u00d6\u00c3\u00cf\u00ec\u00d3\u00a6\u00cd\u00b7\u00d4\u00ca\u00d0\u00edajax\u00bf\u00e7\u00d3\u00f2\u00b7\u00c3\u00ce\u00ca&nbsp;*\/\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(\"Access-Control-Allow-Origin\",&nbsp;\"*\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/*&nbsp;\u00d0\u00c7\u00ba\u00c5\u00b1\u00ed\u00ca\u00be\u00cb\u00f9\u00d3\u00d0\u00b5\u00c4\u00d2\u00ec\u00d3\u00f2\u00c7\u00eb\u00c7\u00f3\u00b6\u00bc\u00bf\u00c9\u00d2\u00d4\u00bd\u00d3\u00ca\u00dc\u00a3\u00ac&nbsp;*\/\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(\"Access-Control-Allow-Methods\",&nbsp;\"GET,POST\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;flag=request.getParameter(\"flag\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;&nbsp;&nbsp;System.out.println(flag);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(\"login\".equals(flag))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;code=request.getParameter(\"js_code\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;url&nbsp;=&nbsp;\"https:\/\/api.weixin.qq.com\/sns\/jscode2session?appid=\"+APPID+\n&nbsp;&nbsp;&nbsp;\t\t\t\t&nbsp;\"&amp;amp;secret=\"+SECRET+\"&amp;amp;js_code=\"+&nbsp;code&nbsp;+\"&amp;amp;grant_type=authorization_code\";\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tJSONObject&nbsp;sjson=CommonUtil.httpsRequest(url,&nbsp;\"GET\",&nbsp;null);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t\/*String&nbsp;openid=\"\";\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;session_key=\"\";\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tif&nbsp;(sjson&nbsp;!=&nbsp;null)&nbsp;{\n\t\t\t\ttry&nbsp;{\n\t\t\t\t\t&nbsp;openid&nbsp;=&nbsp;sjson.getString(\"openid\");\n\t\t\t\t\t&nbsp;session_key=sjson.getString(\"session_key\");\n\t\t\t\t}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n\t\t\t\t\tSystem.out.println(\"\u00d2\u00b5\u00ce\u00f1\u00b2\u00d9\u00d7\u00f7\u00ca\u00a7\u00b0\u00dc\");\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\t\t\t}&nbsp;else&nbsp;{\n\t\t\t\tSystem.out.println(\"code\u00ce\u00de\u00d0\u00a7\");\n\t\t\t}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tSystem.out.println(session_key+\"&nbsp;&nbsp;\"+openid);*\/\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t\/*Map&lt;string&gt;&nbsp;result&nbsp;=&nbsp;new&nbsp;HashMap&lt;string&gt;();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.put(\"res\",&nbsp;\"test\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.put(\"msg\",&nbsp;\"\u00ba\u00f3\u00cc\u00a8\u00d2\u00d1\u00ca\u00d5\u00b5\u00bd\");*\/\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;&nbsp;&nbsp;String&nbsp;json&nbsp;=&nbsp;new&nbsp;Gson().toJson(sjson);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;System.out.println(json);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tWriter&nbsp;out=response.getWriter();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tout.write(sjson.toString());\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tout.flush();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(\"init\".equals(flag))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tStudentDAO&nbsp;studentDAO=new&nbsp;StudentDAO();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;userid=request.getParameter(\"userid\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;res=true;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\t\t\tres=studentDAO.findCheck(userid);\n&nbsp;&nbsp;&nbsp;&nbsp;\t\t}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\t\t\te.printStackTrace();\n&nbsp;&nbsp;&nbsp;&nbsp;\t\t}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&lt;string&gt;&nbsp;result&nbsp;=&nbsp;new&nbsp;HashMap&lt;string&gt;();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.put(\"res\",&nbsp;res);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.put(\"msg\",&nbsp;\"\u00ba\u00f3\u00cc\u00a8\u00d2\u00d1\u00ca\u00d5\u00b5\u00bd\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;json&nbsp;=&nbsp;new&nbsp;Gson().toJson(result);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u00b7\u00b5\u00bb\u00d8\u00d6\u00b5\u00b8\u00f8\u00ce\u00a2\u00d0\u00c5\u00d0\u00a1\u00b3\u00cc\u00d0\u00f2\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;out&nbsp;=&nbsp;response.getWriter();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(json);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.flush();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(\"student\".equals(flag))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tStudentDAO&nbsp;studentDAO=new&nbsp;StudentDAO();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;userid=request.getParameter(\"userid\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;studentName=request.getParameter(\"sname\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;studentNum=request.getParameter(\"snum\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tStudent&nbsp;student=new&nbsp;Student(userid,&nbsp;studentName,&nbsp;studentNum,new&nbsp;Date());\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ttry&nbsp;{\n\t\t\t\tint&nbsp;a=studentDAO.create(student);\n\t\t\t\tif(a!=0)&nbsp;{\n\t\t\t\t\tSystem.out.println(\"\u00b2\u00e5\u00c8\u00eb\u00b3\u00c9\u00b9\u00a6\");\n\t\t\t\t}\n\t\t\t}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n\t\t\t\te.printStackTrace();\n\t\t\t}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(\"teacher\".equals(flag))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tTeacherDAO&nbsp;teacherDAO=new&nbsp;TeacherDAO();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;userid=request.getParameter(\"userid\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;teacherName=request.getParameter(\"tname\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;teacherID=request.getParameter(\"tnum\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tTeacher&nbsp;tea=new&nbsp;Teacher(userid,&nbsp;teacherID,&nbsp;teacherName,new&nbsp;Date());\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ttry&nbsp;{\n\t\t\t\tint&nbsp;a=teacherDAO.create(tea);\n\t\t\t\tif(a!=0)&nbsp;{\n\t\t\t\t\tSystem.out.println(\"\u00b2\u00e5\u00c8\u00eb\u00b3\u00c9\u00b9\u00a6\");\n\t\t\t\t}\n\t\t\t}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n\t\t\t\te.printStackTrace();\n\t\t\t}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(\"guide\".equals(flag))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tStudentDAO&nbsp;studentDAO=new&nbsp;StudentDAO();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;userid=request.getParameter(\"userid\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tSystem.out.println(userid);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;res=true;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;state=\"\";\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\t\t\tres=studentDAO.findCheck(userid);\n&nbsp;&nbsp;&nbsp;&nbsp;\t\t}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\t\t\te.printStackTrace();\n&nbsp;&nbsp;&nbsp;&nbsp;\t\t}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(res)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tstate=\"student\";\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{\n\t\t\t\tTeacherDAO&nbsp;teacherDAO=new&nbsp;TeacherDAO();\n\t\t\t\ttry&nbsp;{\n\t\t\t\t\tres=teacherDAO.findCheck(userid);\n\t\t\t\t}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\t\t\t\tif(res)&nbsp;{\n\t\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tstate=\"teacher\";\n\t\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\t\t\t\telse&nbsp;{\n\t\t\t\t\tstate=\"none\";\n\t\t\t\t}\n\t\t\t}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;json&nbsp;=&nbsp;new&nbsp;Gson().toJson(state);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u00b7\u00b5\u00bb\u00d8\u00d6\u00b5\u00b8\u00f8\u00ce\u00a2\u00d0\u00c5\u00d0\u00a1\u00b3\u00cc\u00d0\u00f2\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;out&nbsp;=&nbsp;response.getWriter();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(json);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.flush();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(\"myInfo\".equals(flag))&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tString&nbsp;userid=request.getParameter(\"userid\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\tStudentDAO&nbsp;studentDAO=new&nbsp;StudentDAO();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ttry&nbsp;{\n\t\t\t\tList&lt;string&gt;&nbsp;list=studentDAO.myInfo(userid);\n\t\t\t\tMap&lt;string&gt;&nbsp;result&nbsp;=&nbsp;new&nbsp;HashMap&lt;string&gt;();\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.put(\"backName\",list.get(0));\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.put(\"backNum\",&nbsp;list.get(1));\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;json&nbsp;=&nbsp;new&nbsp;Gson().toJson(result);\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u00b7\u00b5\u00bb\u00d8\u00d6\u00b5\u00b8\u00f8\u00ce\u00a2\u00d0\u00c5\u00d0\u00a1\u00b3\u00cc\u00d0\u00f2\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;out&nbsp;=&nbsp;response.getWriter();\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(json);\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.flush();\n\t\t\t}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{\n\t\t\t\te.printStackTrace();\n\t\t\t}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n\t}\n\n\t\/**\n\t&nbsp;*&nbsp;@see&nbsp;HttpServlet#doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)\n\t&nbsp;*\/\n\tprotected&nbsp;void&nbsp;doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{\n\t\t\/\/&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub\n\t\tdoGet(request,&nbsp;response);\n\t}}&lt;\/string&gt;&lt;\/string&gt;&lt;\/string&gt;&lt;\/string&gt;&lt;\/string&gt;&lt;\/string&gt;&lt;\/string&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u8fd9\u91cc\u7684APPID\u548cSECRET\u8981\u4f7f\u7528\u4f60\u81ea\u5df1\u7684\u3002\u7531\u4e8e\u6700\u8fd1\u5f88\u5c11\u5173\u6ce8\u535a\u5ba2\uff0c\u54a8\u8be2\u7684\u4eba\u4e5f\u5f88\u591a\uff0c\u5f88\u591a\u79c1\u4fe1\u6765\u4e0d\u53ca\u56de\u590d\uff0c\u5177\u4f53\u5176\u5b83\u7684\u5c31\u7531\u5927\u5bb6\u81ea\u5df1\u63a2\u7d22\u55bd\u3002\u672c\u7a0b\u5e8f\u7eaf\u5c5e\u4e2a\u4eba\u5174\u8da3\uff0c\u5207\u52ff\u7528\u4e8e\u5546\u4e1a\u7528\u9014\u3002<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5206\u4eab\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u7b7e\u5230\u8003\u52e4\u540e\u7aef\u4ee3\u7801\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>\u76f8\u5173\u63a8\u8350\uff1a\u300a\u300b \u670d\u52a1\u7aef\u6e90\u7801 \u9274\u4e8e\u5f88\u591a\u5c0f\u4f19\u4f34\u7ed9\u6211\u79c1\u4fe1\uff0c\u8be2\u95ee\u5173\u4e8e\u540e\u7aef\u4ee3\u7801\u7684\u4e8b\u3002\u5f88\u5f00\u5fc3\u5f88\u5e2e\u52a9\u5230\u8fd9\u4e48\u591a\u4eba\u3002\u4f46\u4e4b\u524d\u7531\u4e8e\u67d0\u79cd\u539f\u56e0\u6ca1\u80fd\u5c06\u5176\u4e0e\u5ba2\u6237\u7aef\u4ee3\u7801\u4e00\u5e76\u53d1\u5e03\uff0c\u8fd9\u91cc\u5c06\u4ee3\u7801\u53d1\u5e03\u5230GitHub\u4e0a\uff0c\u8ba9\u5927\u5bb6\u65b9\u4fbf\u4e0b\u8f7d\u5b66\u4e60\u3002\u8fd9\u91cc\u7528\u7684\u662fJava Servlet \uff0c\u8fd0\u884c\u5728 Web \u670d\u52a1\u5668\u6216\u5e94\u7528\u670d\u52a1\u5668\u4e0a\u7684\u7a0b\u5e8f\uff0c\u4f5c\u4e3a\u6765\u81ea Web \u6d4f\u89c8\u5668\u6216\u5176\u4ed6 HTTP \u5ba2\u6237\u7aef\u7684\u8bf7\u6c42\u548c HTTP \u670d\u52a1\u5668\u4e0a\u7684\u6570\u636e\u5e93\u6216\u5e94\u7528\u7a0b\u5e8f\u4e4b\u95f4\u7684\u4e2d\u95f4\u5c42\u3002\u6570\u636e\u5e93\u4f7f\u7528\u7684\u662fMySQL\uff0c\u6301\u4e45\u5c42\u4f7f\u7528\u4e86JDBC\uff0cJava\u7684\u539f\u751fAPI\u3002\u6ca1\u6709\u4f7f\u7528\u6846\u67b6\uff0c\u65b9\u4fbf\u65b0\u624b\u5b66\u4e60\uff0c\u4e5f\u66f4\u80fd\u7406\u89e3web\u7684\u8fd0\u884c\u673a\u5236\u548c\u539f\u7406\u3002GitHub\u5730\u5740\uff1a\u4f20\u9001\u95e8\u8fd9\u91cc\u8981\u8bf4\u660e\u4e00\u4e0b\u5173\u952e\u7684\u4ee3\u7801\uff1a \/** &nbsp;*&nbsp;Servlet&nbsp;implementation&nbsp;class&nbsp;Login &nbsp;*\/@WebServlet(&#8220;\/Login&#8221;)public&nbsp;class&nbsp;Login&nbsp;extends&nbsp;HttpServlet&nbsp;{ private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L; private&nbsp;static&nbsp;final&nbsp;String&nbsp;APPID=&#8221;xxxxxxxxxx&#8221;; private&nbsp;static&nbsp;final&nbsp;String&nbsp;SECRET=&#8221;xxxxxxxxxxxxxxxxxxxxxxxxxx&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Default&nbsp;constructor.&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Login()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub &nbsp;&nbsp;&nbsp;&nbsp;} \/** &nbsp;*&nbsp;@see&nbsp;HttpServlet#doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response) &nbsp;*\/ protected&nbsp;void&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;throws&nbsp;ServletException,&nbsp;IOException&nbsp;{ \/\/\u00c9\u00e8\u00d6\u00c3\u00c7\u00eb\u00c7\u00f3\u00b1\u00e0\u00c2\u00eb &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(&#8220;utf-8&#8221;); &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;\/*&nbsp;\u00c9\u00e8\u00d6\u00c3\u00cf\u00ec\u00d3\u00a6\u00cd\u00b7\u00d4\u00ca\u00d0\u00edajax\u00bf\u00e7\u00d3\u00f2\u00b7\u00c3\u00ce\u00ca&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(&#8220;Access-Control-Allow-Origin&#8221;,&nbsp;&#8220;*&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/*&nbsp;\u00d0\u00c7\u00ba\u00c5\u00b1\u00ed\u00ca\u00be\u00cb\u00f9\u00d3\u00d0\u00b5\u00c4\u00d2\u00ec\u00d3\u00f2\u00c7\u00eb\u00c7\u00f3\u00b6\u00bc\u00bf\u00c9\u00d2\u00d4\u00bd\u00d3\u00ca\u00dc\u00a3\u00ac&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(&#8220;Access-Control-Allow-Methods&#8221;,&nbsp;&#8220;GET,POST&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;flag=request.getParameter(&#8220;flag&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;&nbsp;&nbsp;System.out.println(flag); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&#8220;login&#8221;.equals(flag))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;code=request.getParameter(&#8220;js_code&#8221;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;url&nbsp;=&nbsp;&#8220;https:\/\/api.weixin.qq.com\/sns\/jscode2session?appid=&#8221;+APPID+ &nbsp;&nbsp;&nbsp; &nbsp;&#8220;&amp;amp;secret=&#8221;+SECRET+&#8221;&amp;amp;js_code=&#8221;+&nbsp;code&nbsp;+&#8221;&amp;amp;grant_type=authorization_code&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONObject&nbsp;sjson=CommonUtil.httpsRequest(url,&nbsp;&#8220;GET&#8221;,&nbsp;null); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/*String&nbsp;openid=&#8221;&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;session_key=&#8221;&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;(sjson&nbsp;!=&nbsp;null)&nbsp;{ try&nbsp;{ &nbsp;openid&nbsp;=&nbsp;sjson.getString(&#8220;openid&#8221;); [&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-33520","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/33520","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=33520"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/33520\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=33520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=33520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=33520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}