ตัวอย่างในบทความนี้แบ่งปันรหัสการตรวจสอบภาพ Java สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
หน้าจอแสดงผล:
index.jsp
ใช้สองวิธีในการบังคับให้อัปเดตภาพ:
1. ตั้งค่าเอาต์พุตภาพโดยไม่ต้องแคช
2. ใช้ JS เพื่อเปลี่ยนที่อยู่ที่ร้องขอ
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <html> <head> <title> โฮมเพจของเว็บโครงการแรก </title> <script type = "img" img); var time = new date (). getTime (); // เบราว์เซอร์เชื่อว่าการกระทำเดียวกัน (กรอง) ไม่จำเป็นต้องตอบดังนั้นจึงใช้ค่าเวลาในการเปลี่ยนค่า SRC (เช่นคำขอ) (อันที่จริงคำขอเดียวกัน) _img.src = "ยืนยัน? <H2> Changsha, Hunan </h2> <h3> เผยแพร่วิธีการ 1 .... </h3> <img src = "images/1.jpg"/> <br/> <a href = "jsps/a.jsp"> ไปที่หน้าย่อย </a> <hr/> <form> name = "pwd"/> <br/> ยืนยันรหัสผ่าน: <อินพุต type = "text" name = pwd2/> <br/> รหัสการตรวจสอบ: <input type = "text"/> <img id = "_ img" src = "ยืนยัน"/> <! href = "javascript: ciftionimg ();"> ไม่เห็นชัดเจน </a> <br/> <อินพุต type = "ส่ง" value = "ลงทะเบียน"/> </form> </body> </html>
รหัส Java ที่สร้างรหัสการยืนยันโดยอัตโนมัติ
หมวดหมู่คีย์ (คลาสต่อไปนี้เป็นเนื้อหาของส่วนพื้นฐาน)
bufferedimage
ภาพ
กราฟิก/กราฟิก 2D
นำเข้า java.awt.Color; นำเข้า java.awt.font; นำเข้า java.awt.graphics; นำเข้า java.awt.image.bufferedimage; นำเข้า java.io.ioexception; นำเข้า java.util.random; นำเข้า Javax.imageio.imageio; javax.servlet.http.httpservlet; นำเข้า javax.servlet.http.httpservletrequest; นำเข้า Javax.servlet.http.httpservletResponse; ServleTexception, iOexception {// system.out.println ("jinlaile"); resp.setContentType ("image/jpeg"); // jpeg เป็นรูปแบบภาพ ตั้งค่ารูปภาพของประเภทของเนื้อหาการตอบสนองเป็น JPEG int width = 64; ความสูง int = 40; bufferedImage bimg = bufferedImage ใหม่ (ความกว้าง, ความสูง, bufferedImage.type_int_rgb); กราฟิก g = bimg.getGraphics (); // พื้นหลัง g.setColor (color.white); G.FillRect (0, 0, ความกว้าง, ความสูง); // ฟอนต์สี g.setfont (ตัวอักษรใหม่ ("aa", font.bold, 18)); // ใช้หมายเลขสุ่มเพื่อสร้างรหัสการตรวจสอบ: 4 จำนวนเต็มภายใน 0 ~ 9 สุ่ม r = ใหม่สุ่ม (); สำหรับ (int i = 0; i <= 4; i ++) {int t = r.nextint (10); // จำนวนเต็มสุ่มภายใน 10 int y = 10+r.nextint (20); // ตำแหน่งขึ้นและลง: 10 ~ 30 สี c = สีใหม่ G.SetColor (C); G.DrawString (""+t, i*16, y); } // วาดเส้นสัญญาณรบกวนสำหรับ (int i = 1; i <8; i ++) {color c = สีใหม่ (r.nextint (255), r.nextint (255), r.nextint (255)); G.SetColor (C); G.Drawline (R.Neextint (ความกว้าง), R.Nextint (ความสูง), R.Neextint (ความกว้าง), R.Nextint (ความสูง)); } // แฟลชกราฟลงในวัตถุ BIMG G.Dispose (); // เทียบเท่ากับวิธีการปิด () ใน IO ด้วย Flush Automatic (); imageio.write (bimg, "jpeg", resp.getOutputStream ()); // รับ OutputStream Object ของ REQ ผ่าน RESP ส่งไปยังการห่อหุ้มซ็อกเก็ตไคลเอ็นต์นั่นคือเขียนถึงไคลเอนต์}}web.xml
<? xml เวอร์ชัน = "1.0" การเข้ารหัส = "utf-8"?> <web-app version = "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://ww.w3.org/200 XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd <servlet-name> bbbb </servlet-name> <jsp-file> /web-inf/b.jsp </jsp-file> </servlet> <!-เข้าถึงรหัส Java ที่สร้างรหัสการตรวจสอบ-> <servlet> <servlet-mapping> <servlet-name> bbbb </servlet-name> <url-pattern> /bb.asp </url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name> img </servlet-name> </welcome-file-list> </eb-app>