页面验证码的显示与点击刷新问题

来源:互联网 发布:美蓝漫画无法连接网络 编辑:程序博客网 时间:2024/05/17 23:57

1.先将一个验证码jar包导入项目。
2.再写一个CodeServlet来使用导入的验证码jar包
例如,我导入的是ValidateCode.jar,然后servlet代码如下:

    public class Code extends HttpServlet {    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        test2(request, response);    }    private void test2(HttpServletRequest request,HttpServletResponse response) throws IOException {        //告诉浏览器不要缓存        response.setHeader("pragma", "no-cache");        response.setHeader("cache-control", "no-cache");        response.setHeader("expires", "0");        //导包        ValidateCode vc = new ValidateCode(110, 25, 4, 9);        vc.write(response.getOutputStream());        String vcode = vc.getCode();        request.getSession().setAttribute("vcode", vcode);        System.out.println(vcode);    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doGet(request, response);    }}

注意:vcode是后台验证码,是正确的,是登录或注册时与从页面是获取的用户输入的验证码进行比较

3.在jsp页面适当位置放入验证码

<tr>        <td>验证码</td>        <td>        <input type="text" name="code">        <img src="/Day14_jsp/Code" onclick="changeCode()">        </td></tr>

4.在js中写点击事件

function changeCode() {        var img=document.getElementsByTagName("img")[0];        img.src="/Day14_jsp/Code?"+new Date().getTime();    }

注意:使用getElementsByTagName获取类型,而不是getElementsByName。[0]里面放的数字指的是当前页面的第几张图片。路径中的”?”后面不用放”time=”。

阅读全文
1 0