javaweb之图片验证码

12 篇文章 0 订阅
本文章复制自博客园大佬

https://www.cnblogs.com/chinaifae/articles/10153700.html

在一个web网站中,我们常常需要设置一个图片验证码,以防止有意之人而已攻击我们的服务器,消耗服务器资源,导致服务器崩溃。
以此通常加一些验证,以保护我们网站的安全,下面就是利用Javaweb抄的一个图片验证。
代码如下
package main.com.burrow_platform.servlet.tools;

import main.com.burrow_platform.tools.Constants;
import main.com.burrow_platform.tools.ImageVerificationCode;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;

public class getVerifiCode extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        /*
             1.生成验证码
             2.把验证码上的文本存在session中
             3.把验证码图片发送给客户端
             */
        ImageVerificationCode ivc = new ImageVerificationCode();     //用我们的验证码类,生成验证码类对象
        BufferedImage image = ivc.getImage();  //获取验证码
        req.getSession().setAttribute(Constants.IMAGECAPTCHA, ivc.getText()); //将验证码的文本存在session中
        //存在session中,后面验证是读取session值即可
        //Constants.IMAGECAPTCHA  这个是类静态常量,读者可根据自己喜好设置名称即可。
        ivc.output(image, resp.getOutputStream());//将验证码图片响应给客户端
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

<div class="form-group">
										 <label for="inputPassword4" class="col-sm-3 control-label">
											 <span class="glyphicon glyphicon-asterisk"></span>
											 &nbsp;
											 验证码
											 </label>
										<div class="col-md-9">
											<div class="col-md-7">
												<input type="text" class="form-control" id="inputPassword4"  />
											</div>
											<div class="col-md-2">
												<%--下面这块是验证码的--%>
												<a href="javascript:getVerifiCode()">


													<img id="yzm_img" style="cursor:pointer;width: 100px;height: 36px;margin: 5px 0 0 5px;border-radius: 3px;" title="点击刷新验证码" src="Mcake/getVerifiCode"/>
												</a>
												<script>
                                                    function getVerifiCode() {
                                                        $("#yzm_img").prop('src','getVerifiCode?a='+new Date().getTime());
                                                    }
												</script>
												<%--上面这块是验证码的--%>
											</div>
											<%--<div class="col-md-9">--%>
												<%--<input type="button" class="form-control" class="btn btn-block btn-default" value="看不清?刷新" />--%>
											<%--</div>--%>
										</div>
									</div>
  <!--这是图片验证码的servlet 头部-->
  <servlet>
    <servlet-name>getVerifiCode</servlet-name>
    <servlet-class>main.com.burrow_platform.servlet.tools.getVerifiCode</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>getVerifiCode</servlet-name>
    <url-pattern>/getVerifiCode</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>getVerifiCode</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <!--这里设置了多个mapping-->
  <!--这是图片验证码的servlet 尾部-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值