首页 > 代码库 > 实习一周的记录
实习一周的记录
【前后端是如何分离的?】
后端负责接收来自客户端的请求并返回数据(通常返回 JSON 格式数据),重点在数据处理;前端负责接收来自后端的数据并呈现,重点在于数据呈现!
貌似比较常见的场景就是:客户端发送一个 AJAX 请求,后端处理发来的数据后返回一个对应的 JSON 数据(通常含有状态码、 message 之类的
【简单的微信公众平台开发】
或许是最容易的方式:
1- 做好能够适应手机屏幕的 H5 网页,放在自家的服务器上(用户、支付什么的完全和微信分离
2- 把网址直接填入 自定义菜单 - 跳转网页
3- 没认证的也不要灰心 (●‘?‘●),可以把网址添加到自动回复中去,别人一样可以看到
【短信验证码的简单实现】
请求短信的 URL 为 webapp/reg.do?method=sendSMS
package com.xkfx.service;import java.io.IOException;import java.io.PrintWriter;import java.util.Random;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.yuke.bean.User;@SuppressWarnings("serial")@WebServlet("/reg.do")public class DoRegisterService extends HttpServlet { String code = null; // 保存验证码 // 生成随机字符串 public static String getRandomString(int length) { // length 表示生成字符串的长度 String base = "abcdefghijklmnopqrstuvwxyz0123456789"; Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); } return sb.toString(); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); // 处理 AJAX 请求 String txtMobile = req.getParameter("txtMobile"); if (req.getParameter("method") != null && req.getParameter("method").equals("sendSMS")) { sendSMS(txtMobile, resp); // 生成随机验证码并发送到客户手机 return; } String txtPassword = req.getParameter("txtPassword"); boolean flag = (code != null) && code.equals(req.getParameter("txtCode")) && txtMobile.equals(req.getParameter("txtMobile")) && txtPassword != null && !"".equals(txtPassword); if (flag) { UserService userService = new UserService(); User user = new User(); user.setUsername(txtMobile); user.setPassword(txtPassword); flag = userService.register(user); // 判断用户是否已经注册 if (flag) req.getSession().setAttribute("user", user); // 维护用户信息 } code = null; // 重置验证码 // 返回 JSON PrintWriter pw = resp.getWriter(); pw.println("{\"status\": " + (flag ? 1 : 0) + ", \"msg\": \"验证码错误或该账号已经注册\"" + ", \"url\": \"/wxapp/user\"}"); pw.close(); } public void sendSMS(String txtMobile, HttpServletResponse resp) throws IOException { code = getRandomString(4); // 生成随机验证码 System.out.println(txtMobile); // 发送验证码到客户手机 PrintWriter pw = resp.getWriter(); pw.println("{\"status\": " + 1 + ", \"msg\": \"手机验证码获取成功\"" + ", \"url\": \"/wxapp/user\"}"); pw.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
把 System.out.println(txtMobile); 改成调用一个发短信的函数,把手机号,验证码作为参数传进去就 OK 了,例如 sendSMS("12223232", code); 当然这个发短信的函数需要到提供该服务的平台下载,使用方法也很简单,就 Java 而言,一般会有如下步骤:
添加必要的 JAR 包 --> 添加一些加密解密(或者其它)的类 --> 把示例代码 COPY 进来 --> 修改成需要的函数
实习一周的记录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。