服务端源码鉴于很多小伙伴给我私信,询问关于后端代码的事。很开心很帮助到这么多人。但之前由于某种原因没能将其与客户端代码一并发布,这里将代码发布到github上,让大家方便下载学习。这里用的是java servlet ,运行在 web 服务器或应用服务器上的程序,作为来自 web 浏览器或其他 http 客户端的请求和 http 服务器上的数据库或应用程序之间的中间层。数据库使用的是mysql,持久层使用了jdbc,java的原生api。没有使用框架,方便新手学习,也更能理解web的运行机制和原理。
github地址:传送门
这里要说明一下关键的代码:
/** * 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 stub doget(request, response); }}
这里的appid和secret要使用你自己的。由于最近很少关注博客,咨询的人也很多,很多私信来不及回复,具体其它的就由大家自己探索喽。本程序纯属个人兴趣,切勿用于商业用途。
以上就是分享微信小程序签到考勤后端代码的详细内容。
