Java中使用patchca生成超炫的驗證碼
更新時間:2017年06月25日 11:27:08 作者:zsg88
這篇文章主要介紹了Java中使用patchca生成超炫的驗證碼 的相關(guān)資料,需要的朋友可以參考下
官網(wǎng):http://code.google.com/p/patchca/
/** * 驗證碼 * * @param width 圖片寬度 * @param height 圖片高度 * @param number 驗證碼數(shù)量 */ @RequestMapping(value = {"/captcha"}) public void captcha(HttpServletRequest request, HttpServletResponse response, @RequestParam("w") int width, @RequestParam("h") int height, @RequestParam("n") int number) throws IOException { ConfigurableCaptchaService cs = new ConfigurableCaptchaService(); cs.setColorFactory(new SingleColorFactory(new Color(25, 60, 170))); cs.setFilterFactory(new CurvesRippleFilterFactory(cs.getColorFactory())); RandomFontFactory ff = new RandomFontFactory(); ff.setMinSize(30); ff.setMaxSize(30); RandomWordFactory rwf = new RandomWordFactory(); rwf.setMinLength(number); rwf.setMaxLength(number); cs.setWordFactory(rwf); cs.setFontFactory(ff); cs.setHeight(height); cs.setWidth(width); response.setContentType("image/png"); response.setHeader("Cache-Control", "no-cache, no-store"); response.setHeader("Pragma", "no-cache"); long time = System.currentTimeMillis(); response.setDateHeader("Last-Modified", time); response.setDateHeader("Date", time); response.setDateHeader("Expires", time); ServletOutputStream stream = response.getOutputStream(); String validate_code = EncoderHelper.getChallangeAndWriteImage(cs, "png", stream); Subject subject = SecurityUtils.getSubject(); subject.getSession().setAttribute(formAuthenticationFilter.getCaptchaParam(), validate_code); stream.flush(); stream.close(); }
以上所述是小編給大家介紹的Java中使用patchca生成超炫的驗證碼 ,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
關(guān)于HttpServletRequest獲取POST請求Body參數(shù)的3種方式
這篇文章主要介紹了關(guān)于HttpServletRequest獲取POST請求Body參數(shù)的3種方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11Mybatis返回單個實體或者返回List的實現(xiàn)
這篇文章主要介紹了Mybatis返回單個實體或者返回List的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Spring6當(dāng)中獲取Bean的四種方式小結(jié)
Spring 為Bean 的獲取提供了多種方式,通常包括4種方式,(也就是說在Spring中為Bean對象的創(chuàng)建準(zhǔn)備了多種方案,目的是:更加靈活),本文將通過代碼示例詳細(xì)的給大家介紹了一下這四種方式,需要的朋友可以參考下2024-04-04JDBC連接MySQL數(shù)據(jù)庫批量插入數(shù)據(jù)過程詳解
這篇文章主要介紹了JDBC連接MySQL數(shù)據(jù)庫批量插入數(shù)據(jù)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11Java 8 Stream.distinct() 列表去重的操作
這篇文章主要介紹了Java 8 Stream.distinct() 列表去重的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12Java中復(fù)雜的Synchronized關(guān)鍵字使用方法詳解
Synchronized關(guān)鍵字是一個種鎖,其有很多名字,例如重量級鎖、悲觀鎖、可重入鎖、、非公平、對象鎖等等,這篇文章主要給大家介紹了關(guān)于Java中復(fù)雜的Synchronized關(guān)鍵字使用方法的相關(guān)資料,需要的朋友可以參考下2024-01-01