首页 > 代码库 > 实习一周的记录

实习一周的记录

【前后端是如何分离的?】

后端负责接收来自客户端的请求并返回数据(通常返回 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 进来 --> 修改成需要的函数

 

实习一周的记录