Эта статья поделилась конкретным кодом кода проверки входа в систему Javaweb для вашей ссылки. Конкретный контент заключается в следующем
использовать:
Контроллер: генерировать код проверки
@Requestmapping ("/user/check.jpg") public void createCode (httpservletRequest, httpservletresponse response) бросает ioException {// уведомление браузера не кешться с ответом .setheader («истекает», «-1»); response.setheader («Контроль кэша», «без каша»); response.setheader ("pragma", "-1"); Captchautil util = captchautil.instance (); // Ввод кода проверки в сеанс, чтобы проверить String Code = util.getString (); request.getSession (). setattribute ("code", code); // Вывод веб -страницы Imageio.write (util.getimage (), "jpg", response.getOutputStream ()); } JSP: показать код проверки
<img id = "img" src = "<%= basepath%> user/check.jpg" onclick = "refresh ()">
function refresh () {var url = $ ("#basepath"). val () + "user/check.jpg? number =" + math.random (); $ ("#img"). attr ("src", url); } проверять:
Получите, соответствует ли код в сеансе с кодом, отправленным обратно на передний план
/ ** * Проверка кода проверки * * @param session * @param code */ private void eckecode (httpsession session, string code) {string codesession = (string) session.getattribute ("code"); if (stringutils.isempty (codesession)) {log.error ("Информация о коде проверки не была сгенерирована"); бросить новое allodalStateException ("ERR-01000"); } if (stringUtils.isempty (code)) {log.error ("Информация о коде проверки не была заполнена в"); бросить новое BusinessException ("ERR-06018"); } if (codesession.equalsignorecase (code)) {// Проверка проверка} else {log.error ("ошибка кода проверки"); бросить новое BusinessException ("ERR-06019"); }} Инструменты:
импортировать java.awt.color; импортировать java.awt.font; импортировать java.awt.graphics; Импорт java.awt.image.bufferedImage; импортировать java.util.random; / ** * Инструмент генерации кода проверки * @author hxl * */ public Class captchautil {private bufferemage image; // image private string str; // код проверки частный статический код char [] = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrStuvwxyz1234789 public Static Final String Session_code_name = "code"; private captchautil () {init (); // Свойство инициализации}/** Получить случайный экземпляр*/ public static captchautil ancement () {return new captchautil (); } /** Получить код проверки изображения* / public BufferedImage getImage () {return this.image; } /** Получить код проверки для изображения* / public String getString () {return this.str; } private void init () {// Создать Image int width = 85, высота = 20; BufferedImage Image = new BufferedImage (ширина, высота, bufferedimage.type_int_rgb); // Получить графическую контекстную графику g = image.getGraphics (); // генерировать случайный случайный = new Random (); // установить цвет фона g.setcolor (getrandcolor (200, 250)); G.FillRect (0, 0, ширина, высота); // Установить шрифт g.setfont (новый шрифт ("Times New Roman", font.plain, 18)); // Случайно генерирует 155 интерференционных линий, делая код аутентификации в изображении менее вероятно, чтобы обнаружить другие программы G.SetColor (getRandcolor (160, 200)); for (int i = 0; i <155; i ++) {int x = random.nextint (ширина); int y = random.nextint (высота); int xl = random.nextint (12); int yl = random.nextint (12); g.drawline (x, y, x + xl, y + yl); } // Принять случайно сгенерированный код аутентификации (4-значный номер) string srand = ""; for (int i = 0; i <4; i ++) {string rand = string.valueof (code [random.nextint (code.length)]); srand += rand; // Показать код аутентификации в изображении g.setcolor (новый цвет (20 + random.nextint (110), 20 + random.nextint (110))); // цвет функции вызова одинаково, может быть, потому что семя слишком близко, поэтому вы можете только напрямую генерировать G.DrawString (RAND, 13 * I + 6, 16); } // Код проверки назначения this.str = srand; // Изображение вступает в силу g.dispose (); // bytearrayinputstream input = null; // bytearrayoutputstream output = new BytearrayOutputStream (); // try {// ImageOutputStream ImageOut = imageIo.createImageOutputStream (output); // Imageio.write (Image, "jpeg", Imageout); // imageout.close (); // input = new BytearRayinputStream (output.tobytearray ()); //} catch (Exception e) {// System.out.println («Ошибка произошла при создании изображения кода проверки:" + e.toString ()); //} // this.image = input this.image = image;/* Назначить изображение*/}/** Получить случайный цвет для данного диапазона*/ private color getrandcolor (int fc, int bc) {random random = new random (); if (fc> 255) fc = 255; if (bc> 255) bc = 255; int r = fc + random.nextint (bc - fc); int g = fc + random.nextint (bc - fc); int b = fc + random.nextint (bc - fc); вернуть новый цвет (r, g, b); }} Наконец, давайте объясним: перехватчик входа в систему должен выпустить путь для создания кода проверки! Вход в систему перехватчик должен выпустить путь для создания кода проверки! ! Вход в систему перехватчик должен выпустить путь для создания кода проверки! ! ! Скажи важные вещи три раза ~~
Последний дисплей:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.