成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

springMVC引入kaptcha

vpants / 397人閱讀

摘要:引入依賴添加驗證碼生成器是否有邊框默認為我們可以自己設(shè)置,邊框顏色默認為邊框粗細度默認為驗證碼生成器默認為驗證碼文本生成器默認為驗證碼文本字符內(nèi)容范圍默認為驗證碼文本字符長度默認為驗證碼文本字體樣式默認為驗證碼文本字符大小默

引入依賴


    com.github.axet
        kaptcha
    0.0.9

Spring-mvc.xml添加


    
        
            
                
                    
                        no
                        black
                        5
                        5
                        com.google.code.kaptcha.impl.ShadowGimpy
                        
                    
                
            
        
    

生成驗證碼

@RequestMapping(value = "/captchaImg", method = RequestMethod.GET)
public void image(HttpServletRequest request, HttpServletResponse response) throws Exception {
    response.setDateHeader("Expires", 0);
    response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
    response.addHeader("Cache-Control", "post-check=0, pre-check=0");
    response.setHeader("Pragma", "no-cache");
    response.setContentType("image/jpeg");
    String capText = captchaProducer.createText();
    //生成圖片驗證碼
    BufferedImage image = captchaProducer.createImage(capText);
    //保存到shiro session
    SecurityUtils.getSubject().getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);

    ServletOutputStream out = response.getOutputStream();
    ImageIO.write(image, "jpg", out);
    try {
        out.flush();
    } finally {
        out.close();
    }
}

驗證驗證碼

@RequestMapping(value = "/captchaValid", method = RequestMethod.POST)
@ResponseBody
public Message captchaValid(String captcha) throws Exception {
    String kaptcha = SecurityUtils.getSubject().getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY).toString();
    SecurityUtils.getSubject().getSession().removeAttribute(Constants.KAPTCHA_SESSION_KEY);
    if (captcha.equalsIgnoreCase(kaptcha)) {
        return Message.success("驗證成功");
    }
    return Message.error("驗證碼不正確");
}

合并后為

import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;

/**
 * Controller - 驗證碼
 *
 * @author liaoyx
 * @version 1.0
 */
@Controller("mgmtCaptchaController")
@RequestMapping("/mgmt/captcha")
public class CaptchaController extends BaseController {

    private Producer captchaProducer = null;

    @Autowired
    public void setCaptchaProducer(Producer captchaProducer) {
        this.captchaProducer = captchaProducer;
    }

    @RequestMapping(value = "/captchaImg", method = RequestMethod.GET)
    public void image(HttpServletRequest request, HttpServletResponse response) throws Exception {
        response.setDateHeader("Expires", 0);
        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
        response.addHeader("Cache-Control", "post-check=0, pre-check=0");
        response.setHeader("Pragma", "no-cache");
        response.setContentType("image/jpeg");
        String capText = captchaProducer.createText();
        //生成圖片驗證碼
        BufferedImage image = captchaProducer.createImage(capText);
        //保存到shiro session
        SecurityUtils.getSubject().getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);

        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(image, "jpg", out);
        try {
            out.flush();
        } finally {
            out.close();
        }
    }

    @RequestMapping(value = "/captchaValid", method = RequestMethod.POST)
    @ResponseBody
    public Message captchaValid(String captcha) throws Exception {
        String kaptcha = SecurityUtils.getSubject().getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY).toString();
        SecurityUtils.getSubject().getSession().removeAttribute(Constants.KAPTCHA_SESSION_KEY);
        if (captcha.equalsIgnoreCase(kaptcha)) {
            return R.success("驗證成功");
        }
        return R.error("驗證碼不正確");
    }

}

參數(shù)詳解

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75959.html

相關(guān)文章

  • SSM : 環(huán)境搭建

    摘要:這個文件包含對對數(shù)據(jù)訪問進行封裝的所有類。為等提供的一致的聲明式和編程式事務(wù)管理。 SSM 環(huán)境搭建 目錄創(chuàng)建 pom.xml SSM 逐層配置 一、目錄 1.1 src/main/java 目錄下的包(以下包要放在項目包下,如:com.imooc.項目名) entity: 存放實體類 web: 存放controller,相當于Struts中的action service: 業(yè)務(wù)...

    MonoLog 評論0 收藏0
  • 這一次,我連 web.xml 都不要了,純 Java 搭建 SSM 環(huán)境!

    摘要:環(huán)境要求使用純來搭建環(huán)境,要求的版本必須在以上。即視圖解析器解析文件上傳等等,如果都不需要配置的話,這樣就可以了??梢詫⒁粋€字符串轉(zhuǎn)為對象,也可以將一個對象轉(zhuǎn)為字符串,實際上它的底層還是依賴于具體的庫。中,默認提供了和的,分別是和。 在 Spring Boot 項目中,正常來說是不存在 XML 配置,這是因為 Spring Boot 不推薦使用 XML ,注意,并非不支持,Spring...

    liaorio 評論0 收藏0
  • 自己模仿springmvc 寫的一個輕量級mvc框架

    摘要:模仿的輕量級框架,適合學習和搭建小型項目使用,持續(xù)更新項目地址感興趣的記得喲目錄介紹框架源碼?;诳蚣軐懙囊粋€小。根據(jù)配置,自動掃描包。本項目更大的用處是學習的思想,而不是要開發(fā)一個全新的框架。 bfmvc 模仿springmvc的輕量級web框架,適合學習和搭建小型web項目使用,持續(xù)更新 項目地址:https://github.com/CFshuming/... 感興趣的記得st...

    EddieChan 評論0 收藏0
  • [轉(zhuǎn)載]使用IntelliJ IDEA開發(fā)SpringMVC網(wǎng)站(一)開發(fā)環(huán)境

    摘要:最近在做某在線教育平臺網(wǎng)站的開發(fā),按師兄的建議要用來搞?,F(xiàn)在把開發(fā)過程中的一些相關(guān)經(jīng)驗貼出來。事先聲明,請確保和都已經(jīng)安裝好。對于不使用的開發(fā)者,可以直接建一個簡單的項目。使用的話,請按照圖進行操作。 訪問GitHub下載最新源碼:https://github.com/gaussic/Sp... 文章已針對IDEA 2016做了一定的更新,部分更新較為重要,請重新閱讀文章并下載最新源碼...

    Ali_ 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<