亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

驗證碼的實現方式-------(servlet實現驗證碼)

系統 1839 0

第一步:建一個動態工程check,一個check.java(servlet類),一個login.jsp文件

第二步:編寫check.java文件,內容為:

    01.package check;  
02.import javax.servlet.ServletException;  
03.import javax.servlet.http.*;  
04.import java.io.*;  
05.import java.awt.*;  
06.import java.awt.image.*;  
07.import java.util.*;  
08.import javax.imageio.*;   
09.  
10./** 
11. * @author  yeeku.H.lee kongyeeku@163.com 
12. * @version  1.0 
13. * <br>Copyright (C), 2005-2008, yeeku.H.Lee 
14. * <br>This program is protected by copyright laws. 
15. * <br>Program Name: 
16. * <br>Date:  
17. */  
18.public class check extends HttpServlet  
19.{  
20.    private Font mFont = new Font("Arial Black", Font.PLAIN, 16);  
21.    public void init() throws ServletException  
22.    {  
23.        super.init();  
24.    }  
25.    Color getRandColor(int fc,int bc)  
26.    {  
27.        Random random = new Random();  
28.        if(fc>255) fc=255;  
29.        if(bc>255) bc=255;  
30.        int r=fc+random.nextInt(bc-fc);  
31.        int g=fc+random.nextInt(bc-fc);  
32.        int b=fc+random.nextInt(bc-fc);  
33.        return new Color(r,g,b);  
34.    }  
35.  
36.    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  
37.    {  
38.        response.setHeader("Pragma","No-cache");  
39.        response.setHeader("Cache-Control","no-cache");  
40.        response.setDateHeader("Expires", 0);  
41.        response.setContentType("image/jpeg");  
42.          
43.        int width=100, height=18;  
44.        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  
45.          
46.        Graphics g = image.getGraphics();  
47.        Random random = new Random();  
48.        g.setColor(getRandColor(200,250));  
49.        g.fillRect(1, 1, width-1, height-1);  
50.        g.setColor(new Color(102,102,102));  
51.        g.drawRect(0, 0, width-1, height-1);  
52.        g.setFont(mFont);  
53.  
54.        g.setColor(getRandColor(160,200));  
55.        for (int i=0;i<155;i++)  
56.        {  
57.            int x = random.nextInt(width - 1);  
58.            int y = random.nextInt(height - 1);  
59.            int xl = random.nextInt(6) + 1;  
60.            int yl = random.nextInt(12) + 1;  
61.            g.drawLine(x,y,x + xl,y + yl);  
62.        }  
63.        for (int i = 0;i < 70;i++)  
64.        {  
65.            int x = random.nextInt(width - 1);  
66.            int y = random.nextInt(height - 1);  
67.            int xl = random.nextInt(12) + 1;  
68.            int yl = random.nextInt(6) + 1;  
69.            g.drawLine(x,y,x - xl,y - yl);  
70.        }  
71.  
72.        String sRand="";  
73.        for (int i=0;i<6;i++)  
74.        {  
75.   String tmp = getRandomChar();  
76.            sRand += tmp;  
77.            g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));  
78.         g.drawString(tmp,15*i+10,15);  
79.        }  
80.  
81.        HttpSession session = request.getSession(true);  
82.        session.setAttribute("rand",sRand);  
83.        g.dispose();  
84.        ImageIO.write(image, "JPEG", response.getOutputStream());  
85.    }  
86.    private String getRandomChar()  
87.    {  
88.  int rand = (int)Math.round(Math.random() * 2);  
89.  long itmp = 0;  
90.  char ctmp = '\u0000';  
91.  switch (rand)  
92.  {  
93.   case 1:  
94.    itmp = Math.round(Math.random() * 25 + 65);  
95.    ctmp = (char)itmp;  
96.    return String.valueOf(ctmp);  
97.   case 2:  
98.    itmp = Math.round(Math.random() * 25 + 97);  
99.    ctmp = (char)itmp;  
100.    return String.valueOf(ctmp);  
101.   default :  
102.    itmp = Math.round(Math.random() * 9);  
103.    return String.valueOf(itmp);  
104.  }  
105.    }  
106.}  
  


第三步:編寫login.jsp文件,內容為:

    01.<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  
02.<%  
03.String path = request.getContextPath();  
04.String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
05.%>  
06.  
07.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
08.<html>  
09.  <head>  
10.    <base href="<%=basePath%>">  
11.      
12.    <title>My JSP 'index.jsp' starting page</title>  
13.    <meta http-equiv="pragma" content="no-cache">  
14.    <meta http-equiv="cache-control" content="no-cache">  
15.    <meta http-equiv="expires" content="0">      
16.    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
17.    <meta http-equiv="description" content="This is my page">  
18.    <!-- 
19.    <link rel="stylesheet" type="text/css" href="styles.css"> 
20.    -->  
21.    <script>  
22.   function refresh()  
23.   {  
24.    document.getElementById("authImg").src='check?now=' + new Date();  
25.   }  
26.  </script>  
27.  </head>  
28.    
29.  <body>  
30.  <%  
31.   
32.    
33.  %>  
34.    驗證碼如圖:<img src="check" id="authImg"/>看不清?<a href="#" onClick="refresh()">單擊此處刷新</a>  
35.  </body>  
36.</html>  

  




第四步:在web.xml文件中配置代碼,內容為:

    01.<servlet>  
02.        <servlet-name>img</servlet-name>  
03.        <servlet-class>check.check</servlet-class>  
04.    </servlet>  
05.  
06.    <servlet-mapping>  
07.        <servlet-name>img</servlet-name>  
08.     <url-pattern>/check</url-pattern>  
09.    </servlet-mapping>   
  


第五步:在tomcat服務器上發布項目check,運行login.jsp,運行結果為:


驗證碼的實現方式-------(servlet實現驗證碼)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲久久久久久久 | 欧美在线性爱视频 | 又黄又爽又成人免费视频 | 国产精品久久久久秋霞影视 | 七色永久性tv网站免费看 | 国产欧美视频在线观看 | 日本一区中文字幕 | 日本黄页网站在线观看 | 色综合中文字幕 | 亚洲视频在线网 | 新久草在线 | 欧美亚洲国产成人高清在线 | 欧美www| 亚洲免费二区三区 | 亚洲mv| 国产成人91高清精品免费 | 成人久久免费视频 | 九九99九九精彩 | 亚洲免费人成在线视频观看 | 亚洲视频在线视频 | 国产 高清 在线 | 午夜67194| 成人性生免费视频 | 国产精品久久成人影院 | 青草视频久久 | 亚洲欧美精品日韩欧美 | 黄色片一级毛片 | 在线播放亚洲视频 | 国产精品第4页 | 免费h片在线观看 | 色综合欧美 | 香蕉九九 | h视频在线观看网站 | 成人在线日韩 | 久青草国产手机在线视频 | 在线播放精品一区二区啪视频 | 欧美日韩一区二区高清视 | 老子午夜伦影理论片 | 国产一区二区在线视频 | 久久香蕉国产线看观看式 | 一级毛片无毒不卡直接观看 |