关于SSM发送手机验证码

本文介绍了在SSM框架下实现手机验证码发送的过程。首先展示了一个用于接收和转换数据的`ChangeUtil`类,包括将数据转化为JSON、处理session以及文件上传的方法。接着是一个名为`RMessage`的类,用于返回前端界面信息。最后,详细展示了如何编写发送手机验证码的`SendMessage`接口类,使用了互亿无线短信接口,包括关键的API调用和验证码生成。在Controller层和前端界面,给出了发送验证码的请求处理和用户交互逻辑。
摘要由CSDN通过智能技术生成

关于手机验证码发送的那些事. 首先写一个封装类来接收传过来的数据如下代码

package com.lsj.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.lsj.util.JsonReturn;

public class ChangeUtil {
    /**
     * 将传进来的数据变成json数据
     * 
     * @param Name
     *            名称
     * @param Value
     *            值
     * @return
     */
    public static String changeJson(Object Name, Object Value) {
        String Json = "";

        Json = "\"" + Name + "\":" + "\"" + Value + "\"";
        return Json;
    }

    /**
     * session值的获取新建还是获取
     * 
     * @param sessionName
     *            设置session的名称
     * @param object
     *            传入session的对象或者变量
     * @param New
     *            新建还是查找
     * @param deadTime
     *            设置session的有效时间
     * @return
     */
    public static Object sessionpotting(String sessionName, Object object,
            boolean New, int deadTime, HttpServletRequest request) {

        HttpSession session = request.getSession(New);
        if (session != null) {
            if (New) {
                session.setAttribute(sessionName, object);
                session.setMaxInactiveInterval(deadTime);
                return "成功";
            } else {

                return session.getAttribute(sessionName);

            }
        } else {
            return null;
        }

    }

    /**
     * 销毁session
     * 
     * @param request
     */
    public static void destroySession(HttpServletRequest request) {
        HttpSession session = request.getSession();
        session.invalidate();
    }

    /**
     * 上传文件一部分
     * 
     * @param request
     * @param jsonReturn
     *            返回的jsonturn的错误信息
     * @param uploadPath
     *            上传的路径
     * @param sizeThresehold
     *            设置内存的临界值
     * @param fileSizeMAX
     *            设置单个文件的最大大小
     * @param sizeMax
     *            设置请求的最大大小
     * @return
     */
    public static Object uploadFile(HttpServletRequest request,
            JsonReturn jsonReturn, String uploadPath, int sizeThresehold,
            int fileSizeMAX, int sizeMax) {

        // 判断请求的头中是否还有enctype="multipart/form-data"
        if (!ServletFileUpload.isMultipartContent(request)) {
            jsonReturn.setMsg("Error:表单中必须包含enctype=\"multipart/form-data\"");
        } else {

            DiskFileItemFactory factory = new Disk

您好,关于在 SSM 中使用验证码,可以按照以下步骤进行: 1. 在前端页面中添加验证码输入框和验证码图片,并在后端生成验证码并将其返回给前端。 2. 在后端控制器中接收前端传来的验证码,与后端生成的验证码进行比对,判断是否匹配。 3. 如果匹配成功,则继续执行后续业务逻辑;如果匹配失败,则返回错误信息给前端。 以下是一个简单的示例代码: 前端页面: ``` <input type="text" name="verifyCode" placeholder="请输入验证码"> <img src="${pageContext.request.contextPath}/verifyCode" alt="验证码"> ``` 后端控制器: ``` @RequestMapping("/verifyCode") public void verifyCode(HttpServletRequest request, HttpServletResponse response) { // 生成验证码,并将其存入 session 中 String verifyCode = VerifyCodeUtils.generateVerifyCode(4); request.getSession().setAttribute("verifyCode", verifyCode); // 将验证码输出到图片,并将图片输出到响应流中 response.setContentType("image/jpeg"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); try { VerifyCodeUtils.outputImage(120, 40, response.getOutputStream(), verifyCode); } catch (IOException e) { e.printStackTrace(); } } @RequestMapping("/login") public String login(String username, String password, String verifyCode, HttpSession session, Model model) { // 从 session 中获取之前生成的验证码 String code = (String) session.getAttribute("verifyCode"); // 判断验证码是否匹配 if (!StringUtils.equalsIgnoreCase(code, verifyCode)) { model.addAttribute("error", "验证码错误"); return "login"; } // 其他业务逻辑 } ``` 其中,VerifyCodeUtils 是一个工具类,用于生成验证码和输出验证码图片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值