摘要:引入依賴添加驗證碼生成器是否有邊框默認為我們可以自己設置,邊框顏色默認為邊框粗細度默認為驗證碼生成器默認為驗證碼文本生成器默認為驗證碼文本字符內容范圍默認為驗證碼文本字符長度默認為驗證碼文本字體樣式默認為驗證碼文本字符大小默
引入依賴
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("驗證碼不正確"); } }
參數詳解
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75959.html
摘要:這個文件包含對對數據訪問進行封裝的所有類。為等提供的一致的聲明式和編程式事務管理。 SSM 環境搭建 目錄創建 pom.xml SSM 逐層配置 一、目錄 1.1 src/main/java 目錄下的包(以下包要放在項目包下,如:com.imooc.項目名) entity: 存放實體類 web: 存放controller,相當于Struts中的action service: 業務...
摘要:環境要求使用純來搭建環境,要求的版本必須在以上。即視圖解析器解析文件上傳等等,如果都不需要配置的話,這樣就可以了。可以將一個字符串轉為對象,也可以將一個對象轉為字符串,實際上它的底層還是依賴于具體的庫。中,默認提供了和的,分別是和。 在 Spring Boot 項目中,正常來說是不存在 XML 配置,這是因為 Spring Boot 不推薦使用 XML ,注意,并非不支持,Spring...
摘要:模仿的輕量級框架,適合學習和搭建小型項目使用,持續更新項目地址感興趣的記得喲目錄介紹框架源碼。基于框架寫的一個小。根據配置,自動掃描包。本項目更大的用處是學習的思想,而不是要開發一個全新的框架。 bfmvc 模仿springmvc的輕量級web框架,適合學習和搭建小型web項目使用,持續更新 項目地址:https://github.com/CFshuming/... 感興趣的記得st...
摘要:最近在做某在線教育平臺網站的開發,按師兄的建議要用來搞。現在把開發過程中的一些相關經驗貼出來。事先聲明,請確保和都已經安裝好。對于不使用的開發者,可以直接建一個簡單的項目。使用的話,請按照圖進行操作。 訪問GitHub下載最新源碼:https://github.com/gaussic/Sp... 文章已針對IDEA 2016做了一定的更新,部分更新較為重要,請重新閱讀文章并下載最新源碼...
閱讀 2984·2021-10-19 11:46
閱讀 979·2021-08-03 14:03
閱讀 2934·2021-06-11 18:08
閱讀 2905·2019-08-29 13:52
閱讀 2744·2019-08-29 12:49
閱讀 480·2019-08-26 13:56
閱讀 924·2019-08-26 13:41
閱讀 849·2019-08-26 13:35