欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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

系統(tǒng) 1925 0

第一步:建一個動態(tài)工程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服務器上發(fā)布項目check,運行l(wèi)ogin.jsp,運行結果為:


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


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产欧美一区二区三区在线看 | 国内一级一级毛片a免费 | 日韩中文欧美 | 黄工厂精品视频在线观看 | 成人免费毛片网站 | 国产高清在线精品 | 亚洲高清视频在线 | 9久热这里只有精品视频在线观看 | 草草国产成人免费视频 | 日韩在线免费视频 | 亚洲一一在线 | 国产精品爱啪在线线免费观看 | 亚洲国产日韩在线观频 | 日韩一区二区福利视频 | 玖玖爱视频在线观看 | 亚洲欧美一级久久精品 | 亚洲午夜精品一区二区 | 欧美欧美欧美欧美 | 国产免费观看一级国产 | 欧美国产精品一区 | 亚洲无线视频 | 免费高清seyeye在线视频观看 | 国产一区久久 | 国产精品中文在线 | 2021国产精品一区二区在线 | 91嫩草国产线免费观看 | 欧美鲁| 91国内精品久久久久免费影院 | 欧美 日韩 | 91精品国产综合久久国产大片 | 日本黄色网战 | 成人欧美一区二区三区视频xxx | 国产一区| 谍影特工在线观看完整版 | 666sao| 国产激情久久久久久熟女老人AV | 免费一级毛片不卡不收费 | 中国精品久久 | 91成人在线| 亚洲 中文 欧美 日韩 在线 | 在线视频 中文字幕 |