首先 jsp 页面要写入验证码的引入区域

<div style="width: 500px">
     <input type="button" id="code" onclick="createCode();" 
         style="width:54px; height:23px;
           background-color: #EB736A;font-size: 23px;font-family: 宋体;color:white;font-weight: bold;"/>    //显示验证码区域
       <input type="text" id="input1" style="width:124px; height:17px;"/>         //输入验证码区域
                
       <font style="color:red;" id="vi"></font>        //提示输入错误的区域
 </div>

然后写 script 的内容

<script type="text/javascript">

/* if (window != top) {
    top.location.href = location.href;
}
 */
var code; //在全局定义验证码 
    //产生验证码
    function createCode() {
        code = "";
        var codeLength = 4;//验证码的长度
        var checkCode = document.getElementById("code");
        var random = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C',
                'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
                'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');//随机数
        for ( var i = 0; i < codeLength; i++) {//循环操作
            var index = Math.floor(Math.random() * 36);//取得随机数的索引(0~35)
            code += random[index];//根据索引取得随机数加到code上
        }
        checkCode.value = code;//把code值赋给验证码
    };

    window.onload = createCode;//页面加载,生成验证码

        
        function btnLogin(){
          var inputCode = document.getElementById("input1").value.toUpperCase(); //取得输入的验证码并转化为大写(jQuery中没有转化大小写的方法,只能这么写)
            if (inputCode.length <= 0) { //若输入的验证码长度为0
                $(".message").html("请输入验证码");
            }else if (inputCode != code) { //若输入的验证码与产生的验证码不一致时
                $(".message").text("验证码不匹配");
                createCode();//刷新验证码
                document.getElementById("input1").value = "";//清空文本框
}
else{
.........//提交表单 } </script>

最后验证码就写好了