锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲美女在线国产,麻豆亚洲AV永久无码精品久久,亚洲系列国产精品制服丝袜第http://www.tkk7.com/achan2bj/category/52826.htmlzh-cnThu, 18 Oct 2012 02:53:44 GMTThu, 18 Oct 2012 02:53:44 GMT60榪愮敤Jcaptcha鍋氶獙璇佺爜鎬葷粨 http://www.tkk7.com/achan2bj/archive/2012/10/18/389790.htmlachan2bjachan2bjThu, 18 Oct 2012 02:16:00 GMThttp://www.tkk7.com/achan2bj/archive/2012/10/18/389790.htmlhttp://www.tkk7.com/achan2bj/comments/389790.htmlhttp://www.tkk7.com/achan2bj/archive/2012/10/18/389790.html#Feedback0http://www.tkk7.com/achan2bj/comments/commentRss/389790.htmlhttp://www.tkk7.com/achan2bj/services/trackbacks/389790.htmlhttp://my.oschina.net/jawava/blog/8574

鍙戠幇榪欎釜紺懼尯涓嶉敊錛屾墍浠ヤ篃鍑戜釜鐑椆銆?/p>

絎竴綃囨棩蹇楋紝涓瀹氳鍔ㄦ墜鍐欐墠鏈夎瘹鎰忋?/p> 榪欎袱澶╄緇欏垰鍋氱殑澶栫綉緋葷粺鐧誨綍欏甸潰鍔犻獙璇佺爜錛屼互鍓嶆病鍋氳繃銆備笂緗戞悳浜嗕竴涓嬶紝璧勬枡寰堝銆?br style="padding: 0px; margin: 0px;" />楠岃瘉鐮佹牎楠岀О浣渃aptcha錛?br style="padding: 0px; margin: 0px;" />Completely Automated Public Test to tell Computers and Humans Apart
涓撲笟鐐瑰効鐨勭炕璇戞槸錛氬叏鑷姩鍖哄垎璁$畻鏈哄拰浜虹被鐨勫浘鐏墊祴璇曘?br style="padding: 0px; margin: 0px;" />CAPTCHA鐨勭洰鐨勫緢鏄庣‘錛屽氨鏄尯鍒嗚綆楁満鍜屼漢綾葷殑涓縐嶇▼搴忕畻娉曪紝
榪欑紼嬪簭蹇呴』鑳界敓鎴愬茍璇勪環浜虹被鑳藉緢瀹規槗閫氳繃浣嗚綆楁満鍗撮氫笉榪囩殑嫻嬭瘯銆?br style="padding: 0px; margin: 0px;" />
緗戜笂鑳芥煡鍒頒笉灝戝疄鐜版柟妗堬紝綆鍗曠殑鍐欎釜jsp灝辮浜嗭紝鎶鏈惈閲忎笉楂樸傛悳浜嗕竴鍦堝悗錛?br style="padding: 0px; margin: 0px;" />鎰熻榪樻槸鐢ㄤ釜姝h鐐瑰効姣旇緝鍚堥傦紝鐒跺悗灝遍攣瀹氫簡JCaptcha錛屽埌鍏跺畼鏂圭綉绔欎笂鐪嬩簡鐪嬶細
http://jcaptcha.octo.com/confluence/display/general/Home

JCaptcha鎻愪緵浜?br style="padding: 0px; margin: 0px;" />Provide robust and reliable CAPTCHA implementation framework for JAVA
Provide accessible CAPTCHA implementations
Provide multi-type challenge (text, sound, image)

瀹冪敤涓婄櫨涓被鏉ュ疄鐜頒簡濡傛綆鍗曠殑鍔熻兘錛岃繖鏄負浠涔堝憿錛熷畼鏂圭粰鐨勮В閲婃槸
1銆佸鏈晫鑳戒笉鏂殑鍙戞槑錛堟垨鍙戠幇錛変竴浜涗漢綾誨鏄撳鐞嗚屾満鍣ㄤ笉鑳藉緢濂藉鐞嗙殑闂銆?br style="padding: 0px; margin: 0px;" />JCaptcha楂樺眿寤虹摯鐨勭粰鍑轟簡涓縐嶉氱敤鐨勫畾涔夊拰琛ㄨ揪榪欑闂騫剁敤浜庤瘑鍒殑鏂規銆?br style="padding: 0px; margin: 0px;" />涔熷氨鏄瘑鍒柟妗堢殑鍙墿灞曟с?br style="padding: 0px; margin: 0px;" />2銆佸疄鐜頒簡鑻ュ共寮曟搸鍜岀粍浠訛紝閫氳繃閰嶇疆榪欎簺寮曟搸鍜岀粍浠訛紝鍙互鏂逛究鐨勪慨鏀硅嚜宸辯▼搴?br style="padding: 0px; margin: 0px;" />captcha鏋勪歡鐨勭畻娉曘傝繖鏍鳳紝鍦ㄦ姷寰℃伓鎰忚闂椂錛屽彲浠ヤ笉鐢ㄦ敼鍙樹唬鐮侊紝鐏墊椿蹇熺殑
鏀瑰彉captcha絳栫暐錛屼粠鑰屾洿濂界殑淇濇姢緋葷粺銆?br style="padding: 0px; margin: 0px;" />
涓漢瑙夌殑璇寸殑鎸哄ソ錛岀涓鐐瑰浜庢垜浠潵璇村掓槸嬈¤鐨勶紝涓昏絎簩鐐規瘮杈冩湁鎰忎箟銆?br style="padding: 0px; margin: 0px;" />鐒跺悗灝辮瘯浜嗚瘯銆備笅闈㈡槸鍏蜂綋闇瑕佸仛鐨勫伐浣滐細

涓錛屼粠瀹樼綉涓婁笅涓猨captcha-1.0-all.jar錛屽姞鍏ュ埌欏圭洰涓紝
瀹樻柟鐨?.0榪樻病鏈夋寮忕増錛屾墍浠ュ厛鐢?.0鍚с?br style="padding: 0px; margin: 0px;" />
浜岋紝瀹樼綉涓婁粙緇嶄簡鍑犵鍜岄」鐩粨鍚堢殑鍏蜂綋鏂規錛屾渶綆鍗曠殑鏂瑰紡寰堝揩璧伴氾紝鍥劇墖寰堥毦鐪嬶紝
鑰屼笖涓嶅叿鏈夊彲閰嶇疆鎬э紝鑲畾涓嶈銆傛墍浠ラ夋嫨閫氳繃spring鏉ユ暣鍚堢殑鏂瑰紡錛?br style="padding: 0px; margin: 0px;" />spring鏄暣鍚堝拰閰嶇疆鐨勫鉤鍙幫紝鎶妀captcha鐨勬湇鍔″拰寮曟搸榪樻湁緇勪歡閰嶇疆鎴恠pring鐨刡ean銆?br style="padding: 0px; margin: 0px;" />紺轟緥濡備笅錛?br style="padding: 0px; margin: 0px;" />
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">
<beans  default-autowire="byName">

    <bean id="captchaServlet" class="com.jawava.XXXX.XXX.TopImageCaptchaServlet" />

<bean id="captchaService" class="com.octo.captcha.service.multitype.GenericManageableCaptchaService">
<description>楠岃瘉鐮佹湇鍔?lt;/description>
<constructor-arg index="0"><ref bean="imageEngine"/></constructor-arg>
<constructor-arg index="1"><value>300</value></constructor-arg><!--瓚呮椂鏃墮棿 縐?->
<constructor-arg index="2"><value>20000</value></constructor-arg><!--鏈澶у茍鍙戞暟-->
<constructor-arg index="3"><value>20000</value></constructor-arg>& lt;!--絎洓涓弬鏁板畼緗戠ず渚嬩笂娌℃湁緇欏嚭錛屼細鎶ラ敊錛屽悗鏉ョ湅浜咥PI鎵嶇煡閬撳皯浜嗕釜鍙傛暟-->
</bean>

<bean id="imageEngine" class="com.octo.captcha.engine.GenericCaptchaEngine">
<description>鍥劇墖寮曟搸</description>
<constructor-arg index="0">
<list>
<ref bean="CaptchaFactory"/>
</list>
</constructor-arg>
</bean>

<bean id="CaptchaFactory" class="com.octo.captcha.image.gimpy.GimpyFactory" >
<description>楠岃瘉鐮佸伐鍘?lt;/description>
<constructor-arg><ref bean="wordgen"/></constructor-arg>
<constructor-arg><ref bean="wordtoimage"/></constructor-arg>
</bean>

<bean id="wordgen" class= "com.octo.captcha.component.word.wordgenerator.RandomWordGenerator" >
<description>鏂囧瓧浜х敓鍣紝鎻愪緵浜嗗ソ鍑犵瀹炵幇錛岀粡榪囨瘮杈冮夌敤浜嗚繖縐?lt;/description>
<constructor-arg index="0"><value>0123456789</value></constructor-arg>
</bean>

<bean id="wordtoimage" class="com.octo.captcha.component.image.wordtoimage.ComposedWordToImage" >
<description>鍥劇墖鐢熸垚鍣?lt;/description>
<constructor-arg index="0"><ref bean="fontGenRandom"/></constructor-arg>
<constructor-arg index="1"><ref bean="backGenUni"/></constructor-arg>
<constructor-arg index="2"><ref bean="simpleWhitePaster"/></constructor-arg>
</bean>

<bean id="fontGenRandom" class="com.octo.captcha.component.image.fontgenerator.RandomFontGenerator" >
<description>鏂囧瓧杞崲鍥劇墖</description>
<constructor-arg index="0"><value>20</value></constructor-arg><!--瀛椾綋鏈灝忓昂瀵?->
<constructor-arg index="1"><value>20</value></constructor-arg><!--瀛椾綋鏈澶у昂瀵?->
</bean> 

<bean id="backGenUni" class="com.octo.captcha.component.image.backgroundgenerator.GradientBackgroundGenerator" >
<constructor-arg index="0"><value>62</value></constructor-arg><!--鑳屾櫙鍥劇墖瀹藉害-->
<constructor-arg index="1"><value>22</value></constructor-arg><!--鑳屾櫙鍥劇墖楂樺害-->
<constructor-arg type="java.awt.Color" index="2">
<ref bean="colorGrey"/>
</constructor-arg> 
<constructor-arg type="java.awt.Color" index="3">
<ref bean="colorGreen"/>
</constructor-arg>

</bean>

<bean id="simpleWhitePaster" class="com.octo.captcha.component.image.textpaster.SimpleTextPaster" >
<constructor-arg type="java.lang.Integer" index="0">
<value>4</value><!--瀛楃鏈灝戜釜鏁?->
</constructor-arg>
<constructor-arg type="java.lang.Integer" index="1">
<value>4</value><!--瀛楃鏈澶氫釜鏁?->
</constructor-arg>
<constructor-arg type="java.awt.Color" index="2">
<ref bean="colorFont"/>
</constructor-arg>
</bean>

<bean id="colorGrey" class="java.awt.Color" >
<constructor-arg index="0"><value>200</value></constructor-arg>
<constructor-arg index="1"><value>255</value></constructor-arg>
<constructor-arg index="2"><value>200</value></constructor-arg>
</bean>
<bean id="colorGreen" class="java.awt.Color" >
<constructor-arg index="0"><value>110</value></constructor-arg>
<constructor-arg index="1"><value>120</value></constructor-arg>
<constructor-arg index="2"><value>200</value></constructor-arg>
</bean>
<bean id="colorFont" class="java.awt.Color" >
<constructor-arg index="0"><value>60</value></constructor-arg>
<constructor-arg index="1"><value>60</value></constructor-arg>
<constructor-arg index="2"><value>60</value></constructor-arg>
</bean>
</beans>



榪欓噷闈㈠叿浣撶敤鍝釜component,闇瑕佺湅ApI錛屾垜鎶婂寘閲屾彁渚涚殑鐜版垚鐨勭粍浠跺熀鏈笂璇曚簡澶у崐錛?br style="padding: 0px; margin: 0px;" />鏈鍚庨夋嫨浜嗗涓婄殑閰嶇疆錛岄夋嫨鐨勬爣鍑嗕竴鏄編瑙傦紝浜屾槸璇嗗埆鐜囥傝瘑鍒巼澶綆浜嗭紝鐢ㄦ埛浣撻獙浼氫笅闄嶃?br style="padding: 0px; margin: 0px;" />
涓夈侀厤緗ソ鍚庯紝JCaptcha榪欒竟鐨勫伐浣滃氨瀹屾垚浜嗐備笅闈㈠氨鏄拰欏圭洰鐨勭粨鍚堛?br style="padding: 0px; margin: 0px;" />1銆侀鍏堜笓闂ㄥ啓涓狢aptcahServlet鐢ㄦ潵鑾峰彇楠岃瘉鐮侊紝鐢變簬瑕佸湪servlet閲屾敞鍏pring鐨刡ean錛?br style="padding: 0px; margin: 0px;" />鎵浠ョ敤浜嗕唬鐞嗙殑鏂瑰紡銆備唬鐞嗙被緗戜笂鏈夛紝閮芥槸鍥哄畾鍐欐硶錛岃繖閲屽氨涓嶈創浜嗐?br style="padding: 0px; margin: 0px;" />CaptcahServlet涓昏閮ㄥ垎濡備笅錛?br style="padding: 0px; margin: 0px;" />
@Override
public void service(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
throws ServletException, IOException, RuntimeException {

byte[] captchaChallengeAsJpeg = null;
//杈撳嚭jpg鐨勫瓧鑺傛祦
ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
try {
// get the session id that will identify the generated captcha.
//the same id must be used to validate the response, the session id is a good candidate!
String captchaId = httpServletRequest.getSession().getId();
// call the ImageCaptchaService getChallenge method
BufferedImage challenge =
(BufferedImage) captchaService.getChallengeForID(captchaId,
            httpServletRequest.getLocale());

// a jpeg encoder
    JPEGImageEncoder jpegEncoder =
            JPEGCodec.createJPEGEncoder(jpegOutputStream);
    jpegEncoder.encode(challenge);

} catch (IllegalArgumentException e) {
    httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
    return;
} catch (CaptchaServiceException e) {
    httpServletResponse.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    return;
}

captchaChallengeAsJpeg = jpegOutputStream.toByteArray();

// flush it in the response
httpServletResponse.setHeader("Cache-Control", "no-store");
httpServletResponse.setHeader("Pragma", "no-cache");
httpServletResponse.setDateHeader("Expires", 0);
httpServletResponse.setContentType("image/jpeg");
ServletOutputStream responseOutputStream =
        httpServletResponse.getOutputStream();
responseOutputStream.write(captchaChallengeAsJpeg);
responseOutputStream.flush();
responseOutputStream.close();
    }



鐒跺悗鍦╳eb.xml閰嶇疆錛?br style="padding: 0px; margin: 0px;" />
<servlet>
<servlet-name>CaptchaProxy</servlet-name>
<servlet-class>com.jawava.XXXXX.XXX.TopHttpServletProxy</servlet-class>
<init-param>
<param-name>targetServlet</param-name>
<param-value>captchaServlet</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CaptchaProxy</servlet-name>
<url-pattern>/topJcaptcha</url-pattern>
</servlet-mapping>



2銆佺洰鍓嶉」鐩殑鐧誨綍欏甸潰鏄痡sp錛岀粨鍚堝緢鏂逛究錛屽湪鍘熸湁欏甸潰涓婂姞涓?br style="padding: 0px; margin: 0px;" /><img src="/topJcaptcha" /> <input type="text" name="jcaptcha" value="" />
閭d釜img灝辨槸鏍¢獙鐮併?br style="padding: 0px; margin: 0px;" />闇瑕佺殑璇濓紝鍐嶅姞涓婁釜鎹㈠浘鐗囩殑鍔熻兘錛屽緢綆鍗曘?br style="padding: 0px; margin: 0px;" />
3銆侀獙璇佺幆鑺傘傛垜鏄湪鍘熸潵鐨勯獙璇佺敤鎴峰瘑鐮佺殑閫昏緫鍓嶏紝鍔犱笂浜嗛獙璇佺爜鐨勬牎楠岄昏緫銆?br style="padding: 0px; margin: 0px;" />寰堢畝鍗曠殑鍑犲彞璇濓紝浠g爜濡備笅錛?br style="padding: 0px; margin: 0px;" />
Boolean isResponseCorrect =Boolean.FALSE;
        //闇瑕乻essionId 鏉ラ獙璇佹牎楠岀爜
        String sessionId = request.getSession().getId();
//棣栧厛鏍¢獙楠岃瘉鐮?br style="padding: 0px; margin: 0px;" />        try {
            isResponseCorrect = captchaService.validateResponseForID(sessionId,
             captcha_input);
            if(!isResponseCorrect) {
             throw new RuntimeException("杈撳叆鐨勯獙璇佺爜鏈夎錛岃閲嶆柊杈撳叆");
            }
        } catch (CaptchaServiceException e) {
             //should not happen, may be thrown if the id is not valid
         throw new RuntimeException("鏍¢獙楠岃瘉鐮佹椂鍑虹幇涓嶆槑閿欒",e);
        }



鍥涖佸姝ゅ氨鍙互嫻嬭瘯浜嗐傞氳繃鍙嶅璋冩暣鍙傛暟錛岃揪鍒頒簡姣旇緝緹庤鐨勬晥鏋滐紝浣嗘槸鏂囧瓧濮嬬粓
涓嶅湪鍥劇墖鐨勬涓紝鑰屾槸闈犱笂錛岀敋鑷抽兘鎶婃枃瀛楁帺鐩栦簡涓鍗娿傜炕鐪嬩簡鍗婂ぉAPI錛屼篃鐪嬩笉鍑?br style="padding: 0px; margin: 0px;" />涓鍊傚彧濂藉幓緲繪簮浠g爜浜嗐傞棶棰樺嚭鍦?br style="padding: 0px; margin: 0px;" />com.octo.captcha.component.image.textpaster.SimpleTextPaster榪欎釜綾伙紝瀹冩妸鏂囧瓧
鍥劇墖寰鑳屾櫙鍥劇墖鏀炬椂錛屾妸鏂囧瓧鐨勪綅緗斁鍦ㄤ簡鑳屾櫙鍥劇墖涓鍗婄殑楂樺害涓婏紝榪欏氨鏄棶棰樻墍鍦ㄣ?br style="padding: 0px; margin: 0px;" />淇敼浠g爜閲嶆柊鎵撲簡涓猨ar鍖呫傛浛鎹竴涓嬶紝閲嶅惎鍚庝竴鍒噊k銆?/div>

achan2bj 2012-10-18 10:16 鍙戣〃璇勮
]]> 主站蜘蛛池模板: 亚洲国产欧美国产综合一区| a级男女仿爱免费视频| 免费女人18毛片a级毛片视频| 免费福利资源站在线视频| 亚洲综合无码精品一区二区三区 | 一个人看的www免费视频在线观看| 免费观看国产精品| 182tv免费视频在线观看| 亚洲午夜久久久影院伊人| 特级毛片免费观看视频| 亚洲人成在线电影| 24小时日本电影免费看| 久久亚洲AV成人出白浆无码国产| 成人激情免费视频| 日韩欧美亚洲中文乱码| 免费少妇a级毛片| 97在线视频免费| 亚洲黄色三级网站| 欧美好看的免费电影在线观看| 男女作爱免费网站| 亚洲an日韩专区在线| 亚洲一区二区三区香蕉| 日本一线a视频免费观看| 未满十八18禁止免费无码网站| 亚洲国产成人精品无码区在线网站| 永久免费AV无码国产网站| 国产日韩AV免费无码一区二区三区| 亚洲av女电影网| 亚洲av高清在线观看一区二区 | 俄罗斯极品美女毛片免费播放| 99精品视频在线视频免费观看| 免费观看四虎精品成人| 亚洲av无码片区一区二区三区| 亚洲国产精品无码av| 四虎影视精品永久免费网站| 亚洲免费视频播放| 91精品国产免费久久国语蜜臀| 国产成人高清精品免费观看| 久久久亚洲欧洲日产国码是AV| 久久亚洲av无码精品浪潮| 国产精品国产午夜免费福利看|