Вручную создайте код проверки Java, конкретный контент заключается в следующем
Композиция кода проверки веб -приложений:
(1) Входная коробка
(2) изображение с кодом проверки
Процесс создания кода проверки:
Контейнер, который генерирует код проверки, использует сервлет J2EE
Классы, необходимые для создания изображений:
(1) Буферный буфер данных изображения BufferedImage
(2) изображения графического рисунка
(3) Цвет получает цвет
(4) случайные генерирует случайные числа
(5) Imageio входное изображение
Конкретный процесс реализации:
(1) Определите сервлет для генерации кода проверки
(2) Определите объект BuffereMage, основная функция состоит в том, чтобы создать буфер изображения в качестве временного контейнера для изображения.
(3) Получить графический объект, «фон» рисунка и понять его как «холст»
(4) Сгенерировать случайные числа с помощью случайных для создания информации о проверке
(5) Посредством графических операций рисуйте конкретные чертежи
(6) Информация хранится в сеансе
(7) Используйте ImageIO для вывода сгенерированного изображения, и передайте изображение на передний план, установив параметр out в методе write () imageio, response.getOutputStream ().
(8) Сделайте сервлет для проверки и извлеките данные в сеансе для проверки (здесь используется асинхронный метод AJAX)
Конкретная реализация кода (пример кода проверки веб-сайта)
<html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> java verification code </title> <script src = "https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.min. Ввод кода проверки: <input type = "text" name = "fectcode"> <img id = "codeimg" src = "Imageservlet"> <a href = "javascript: reloadCode ();"> Не видит ясно? </a> <br/> <input type = "propect" value = "upper"> <div id = "info" style = "color: red;"> </div> <script type = "text/javascript"> $ (function () {// ajax asynchrony transfost код проверки на фоновый $ ("type = upper]"). {"Код": $ ("Вход [name = feetCode]"). Val ()}, функция (Data, TextStatus) {console.log (textStatus); Date (). Gettime (); // Создать разное время $ ("#codeimg"). Attr ("src", "ImageServlet? Time ="+Time); // запрос re re} </script> </body> </html>Класс Imageservlet (часть генерации кода проверки)
@Webservlet ("/imageservlet") открытый класс Imageservlet Extens Httpservlet {Private Static Long Long Serialversionuid = 1L; / ** * @see httpservlet#httpservlet () */ public imageservlet () {super (); // TODO Автогенерированный конструктор stub}/ ** * @see httpservlet#doget (httpservletrequest, httpservlectresponse response) */ Protected void doget (httpservletrequest, httpservesponse response) trows servlectexception a a a a auteaderimegressponse methodmage wydemage serhexception. bimg = new BufferedImage (68, 22, BufferedImage.type_int_rgb); Графика g = bimg.getGraphics (); Цвет цвета = новый цвет (200 151 255); // генерация цвета g.setcolor (цвет); G.FillRect (0, 0, 68, 22); char [] ch = "abcdefghjiklmnopqrStuvwxyz0123456789" .tochararray (); // Получить массив, содержащий буквы и числа, а затем случайным образом получить символы из него случайного случайного = new random (); // Создать случайное число int len = Ch.length, index; StringBuffer sbuffer = new StringBuffer (); // Цикл генерирует 4 случайных символа для (int i = 0; i <4; i ++) {index = random.nextint (len); // Создать случайную букву и число g.setcolor (новый цвет (random.nextint (88), random.nextint (120), random.nextint (90));//// create arding g.drawring (ch indextretint (90)); (i)*15+3, 18); sbuffer.append (ch [index]); // Поместите случайно полученные символы в серию буфера} request.getSession (). setattribute ("newcode", sbuffer.toString ()); // Сохранить в сеансе для последующей проверки Imageio.write (bimg, "jpg", chascle.getOutputStream (); / ** * @see httpservlet#dopost (httpservlectrequest, httpservletresponse response) * / Защищенная void dopost (httpservletrequest, httpservletresponse response) throws servletexception, ioexception {// todo Auto-Generated Method STUB STUB) DOGET (запрос, ответ); }}CHECKCODE (сервлет проверки проверки кода)
@Webservlet ("/fectcode") public class ceckcode extends httpservlet {private static final long serialversionuid = 1l; / ** * @see httpservlet#httpservlet () */ public chectcode () {super (); // TODO Автогенерированный конструктор STUB}/ ** * @see httpservlet#doget (httpservletrequest, httpservletresponse response) */ Защищенный Doget (httpservlectrequest, httpsersersponse response) response.setcharacterencoding ("UTF-8"); String Code = request.getParameter ("code"). Touppercase (); // Получить код проверки и выполнить строку преобразования случая = null; if (request.getSession (). getattribute ("newCode"). equals (code)) {result = "verification успешно!"; response.getWriter (). Append (Result); } else {result = "ошибка кода проверки!"; response.getWriter (). Append (Result); }} / ** * @see httpservlet#dopost (httpservletrequest, httpservletresponse response) * / Защищенный void dopost (httpservletrequest, httpservletresponse response) throws vervletexception, ioexception {// todo auto-generated method stube-stube (ratexception, ratese); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.