服务端源码

鉴于很多小伙伴给我私信,询问关于后端代码的事。很开心很帮助到这么多人。但之前由于某种原因没能将其与客户端代码一并发布,这里将代码发布到GitHub上,让大家方便下载学习。这里用的是Java Servlet ,运行在 Web 服务器或应用服务器上的程序,作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。数据库使用的是MySQL,持久层使用了JDBC,Java的原生API。没有使用框架,方便新手学习,也更能理解web的运行机制和原理。
GitHub地址:https://github.com/NeglectOverlook/WeChatServerCode
这里要说明一下关键的代码:

/*** Servlet implementation class Login*/
@WebServlet("/Login")
public class Login extends HttpServlet {private static final long serialVersionUID = 1L;private static final String APPID="xxxxxxxxxx";private static final String SECRET="xxxxxxxxxxxxxxxxxxxxxxxxxx";/*** Default constructor. */public Login() {// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//ÉèÖÃÇëÇó±àÂërequest.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");/* ÉèÖÃÏìӦͷÔÊÐíajax¿çÓò·ÃÎÊ */response.setHeader("Access-Control-Allow-Origin", "*");/* ÐǺűíʾËùÓеÄÒìÓòÇëÇ󶼿ÉÒÔ½ÓÊÜ£¬ */response.setHeader("Access-Control-Allow-Methods", "GET,POST");String flag=request.getParameter("flag");//   System.out.println(flag);if("login".equals(flag)) {String code=request.getParameter("js_code");String url = "https://api.weixin.qq.com/sns/jscode2session?appid="+APPID+"&secret="+SECRET+"&js_code="+ code +"&grant_type=authorization_code";JSONObject sjson=CommonUtil.httpsRequest(url, "GET", null);/*String openid="";String session_key="";if (sjson != null) {try {openid = sjson.getString("openid");session_key=sjson.getString("session_key");} catch (Exception e) {System.out.println("ÒµÎñ²Ù×÷ʧ°Ü");e.printStackTrace();}} else {System.out.println("codeÎÞЧ");}System.out.println(session_key+"  "+openid);*//*Map<String, Object> result = new HashMap<String, Object>();result.put("res", "test");result.put("msg", "ºǫ́ÒÑÊÕµ½");*///   String json = new Gson().toJson(sjson);// System.out.println(json);Writer out=response.getWriter();out.write(sjson.toString());out.flush();}if("init".equals(flag)) {StudentDAO studentDAO=new StudentDAO();String userid=request.getParameter("userid");boolean res=true;try {res=studentDAO.findCheck(userid);} catch (Exception e) {e.printStackTrace();}Map<String, Object> result = new HashMap<String, Object>();result.put("res", res);result.put("msg", "ºǫ́ÒÑÊÕµ½");String json = new Gson().toJson(result);//·µ»ØÖµ¸ø΢ÐÅС³ÌÐòWriter out = response.getWriter();out.write(json);out.flush();}if("student".equals(flag)) {StudentDAO studentDAO=new StudentDAO();String userid=request.getParameter("userid");String studentName=request.getParameter("sname");String studentNum=request.getParameter("snum");Student student=new Student(userid, studentName, studentNum,new Date());try {int a=studentDAO.create(student);if(a!=0) {System.out.println("²åÈë³É¹¦");}} catch (Exception e) {e.printStackTrace();}}if("teacher".equals(flag)) {TeacherDAO teacherDAO=new TeacherDAO();String userid=request.getParameter("userid");String teacherName=request.getParameter("tname");String teacherID=request.getParameter("tnum");Teacher tea=new Teacher(userid, teacherID, teacherName,new Date());try {int a=teacherDAO.create(tea);if(a!=0) {System.out.println("²åÈë³É¹¦");}} catch (Exception e) {e.printStackTrace();}}if("guide".equals(flag)) {StudentDAO studentDAO=new StudentDAO();String userid=request.getParameter("userid");System.out.println(userid);boolean res=true;String state="";try {res=studentDAO.findCheck(userid);} catch (Exception e) {e.printStackTrace();}if(res) {state="student";}else{TeacherDAO teacherDAO=new TeacherDAO();try {res=teacherDAO.findCheck(userid);} catch (Exception e) {e.printStackTrace();}if(res) {state="teacher";}else {state="none";}}String json = new Gson().toJson(state);//·µ»ØÖµ¸ø΢ÐÅС³ÌÐòWriter out = response.getWriter();out.write(json);out.flush();}if("myInfo".equals(flag)) {String userid=request.getParameter("userid");StudentDAO studentDAO=new StudentDAO();try {List<String> list=studentDAO.myInfo(userid);Map<String, String> result = new HashMap<String, String>();result.put("backName",list.get(0));result.put("backNum", list.get(1));String json = new Gson().toJson(result);//·µ»ØÖµ¸ø΢ÐÅС³ÌÐòWriter out = response.getWriter();out.write(json);out.flush();} catch (Exception e) {e.printStackTrace();}}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

这里的APPID和SECRET要使用你自己的。由于最近很少关注博客,咨询的人也很多,很多私信来不及回复,具体其它的就由大家自己探索喽。本程序纯属个人兴趣,切勿用于商业用途。

微信小程序签到考勤后端代码相关推荐

  1. 微信小程序支付 Java后端代码详解

    微信小程序发起支付 Java后台处理代码---- 直接上代码吧! 我把自己的业务逻辑代码删了,但是都有注释的 莫慌! package com.mvc.controller;import java.io ...

  2. 微信小程序的考勤管理Demo,包括前后端及数据库等内容

    这是一个微信小程序的考勤管理Demo,包括前后端及数据库等内容.如有错误或建议,欢迎指出. 前端:微信小程序框架 后端:koa框架基于express的新一代框架 文件:url80.ctfile.com ...

  3. python 微信小程序签到系统_微信小程序签到功能

    本文实例为大家分享了简易微信小程序签到功能的具体代码,供大家参考,具体内容如下 一.效果图 点击签到后 二.数据库 用一张数据表存用户签到的信息,每次用户签到都会往表中添加一条记录了用户id和签到日期 ...

  4. 微信小程序向java后端发送对象时 ,后端接收不到

    微信小程序前端向后端发送对象接收不到 这里时请求头 这里时data中做的假数据 这是封装好的 post请求 后端的Controller代码 返回的结果 接收结果为null  但是可以接到可以用过 加@ ...

  5. 微信小程序开发(后端Java)

    微信使用的开发语言和文件很「特殊」. 小程序所使用的程序文件类型大致分为以下几种: ①WXML(WeiXin Mark Language,微信标记语言) ②WXSS(WeiXin Style Shee ...

  6. 微信小程序篇_01 微信小程序与Java后端接口交互

    微信小程序与Java后端接口交互 准备 创建后端项目 创建小程序项目 本文主要介绍小程序前后端数据的交互,实践演示. 准备 创建后端项目 我这里就创建一个SpringBoot项目作为演示. 在创建项目 ...

  7. 微信小程序浮动按钮_操作按钮悬浮固定在微信小程序底部的实现代码

    本章节主要介绍了如何将操作按钮悬浮固定在微信小程序底部?操作起来也比较简单,还不会的朋友一起跟着小编学习一下吧,希望对你们有所帮助. 常见的有加入购物车按钮.结算按钮.收货列表添加地址按钮. 以收货地 ...

  8. 微信小程序背景音乐官方实例代码无效问题解决及音乐src获取方法

    微信小程序背景音乐官方实例代码无效问题解决及音乐src获取方法 参考文章: (1)微信小程序背景音乐官方实例代码无效问题解决及音乐src获取方法 (2)https://www.cnblogs.com/ ...

  9. 微信小程序大转盘完整代码

    微信小程序大转盘完整代码 效果图 wxml片段 <!--index.wxml--> <view class="container"><image sr ...

最新文章

  1. 表格(增加行号) http://www.blogjava.net/zeyuphoenix/archive/2010/04/19/318788.html
  2. tc-core-library-js学习笔记
  3. 03-SpringMVC-获得用户请求数据
  4. teacher want middle point result rather all drafts
  5. 分库分表之历史表如何选择最佳分片路由规则
  6. java用log.i打印数组_java-使用JSCH将ssh日志打印到列表(android)
  7. python post提交给php,从Python发送HTTP POST请求(尝试从PHP转换)
  8. 抢票加速包的钱都白花了?铁总:第三方抢票软件已被限制
  9. oracle io错误的是什么意思,大家帮帮忙,如何解决下面的IO错误问题,急!!!...
  10. 学习Java开源框架前你应该了解的
  11. 【STM32H7的DSP教程】第8章 DSP定点数和浮点数(重要)
  12. Python调用WebService接口
  13. 对研发团队里技术分享的一些思考
  14. 拳皇命运服务器维护多长时间,拳皇命运开服表
  15. ASAN Pass源码分析(六)——全局变量插桩
  16. ADC输入噪声面面观——噪声是利还是弊?
  17. 小日期时间型_利于就业的汽车拆解技术服务师证报名时间、考试流程分几个级别?...
  18. 房间类游戏后台框架(四)—游戏服务器
  19. C++ primer plus读书笔记与心得
  20. Oracle突然无法登录,ORA-12514:TNS

热门文章

  1. Qt QDateTime计算时间差
  2. MySql安装手册(二进制安装)
  3. popuwindow覆盖手机键盘
  4. 微信三方代开发公众号消息管理-群发消息
  5. 2022最新交规记忆重点
  6. 学习笔记(工作时写的测试工具,20220228,IMDS250数据落地(自用))
  7. 详细的频域滤波学习笔记(5)--常见的频域滤波器
  8. Visual Studio2022安装及设置教程
  9. tips---知识型
  10. finereport使用java_finereport和java