1. Предисловие
Можно сказать, что коды проверки очень распространены в нашей жизни. У любого веб -сайта или любого приложения будет эта функция, но зачем вам это нужно? Как это сделать? Ниже редактор приведет всех использовать Java для завершения функции проверки кода.
2. Функция кода проверки
Как правило, это может помешать людям использовать роботы для автоматического регистрации партий и постоянно войти в систему для конкретных зарегистрированных пользователей, используя конкретные программы для методов взлома грубого сила. Поскольку код проверки - это картина, которая смешивает числа и символы, человеческому глазу выглядит трудно, и для машины еще сложнее распознавать.
3. Реализация Java
3.1 Установите класс сервлета для кода проверки:
пакет com.bjpowernode.drp.util.servlet; import java.awt.color; импорт java.awt.font; import java.awt.graphics; импорт java.awt.image.bufferedimage; impormAge.io.ioexception; импорт java.util.random; import.imageio. javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletrespons Ares * */public class aymage extends httpservlet {private static final String content_type = "text/html; charset = gb2312"; // Установить размер букв, размер частного шрифта mfont = new Font («Times New Roman», Font.Plain, 17); public void init () бросает ServletException {super.init (); } 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); int b = fc+random.nextint (bc-fc); вернуть новый цвет (r, g, b); } public void service (httpservletrequest, httpservletresponse response), бросает ServletException, ioException {response.setheader ("pragma", "без Cache"); response.setheader («Контроль кэша», «без каша»); response.setDateHeader («истекает», 0); // Укажите, что сгенерированным ответом является реакция изображения.setContentType ("Image/jpeg"); int ширина = 100, высота = 18; BufferedImage Image = new BufferedImage (ширина, высота, bufferedimage.type_int_rgb); Graphics g = image.getGraphics (); Случайный случайный = new Random (); g.setcolor (getrandcolor (200 250)); G.FillRect (1, 1, ширина-1, высота-1); G.SetColor (новый цвет (102,102,102)); G.DrawRect (0, 0, ширина-1, высота-1); g.setfont (mfont); g.setcolor (getrandcolor (160 200)); // Нарисуйте случайную линию для (int i = 0; i <155; i ++) {int x = random.nextint (ширина - 1); int y = random.nextint (высота - 1); int xl = random.nextint (6) + 1; int yl = random.nextint (12) + 1; g.drawline (x, y, x + xl, y + yl); } // Нарисуйте случайную линию из другого направления для (int i = 0; i <70; i ++) {int x = random.nextint (ширина - 1); int y = random.nextint (высота - 1); int xl = random.nextint (12) + 1; int yl = random.nextint (6) + 1; g.drawline (x, y, x - xl, y - yl); } // Сгенерировать случайные числа и преобразовать случайные числа в буквы строки srand = ""; for (int i = 0; i <6; i ++) {int itmp = random.nextint (26)+65; char ctmp = (char) itmp; srand += string.valueof (ctmp); g.setcolor (новый цвет (20+random.nextint (110), 20+random.nextint (110), 20+random.nextint (110))); g.drawstring (String.valueof (ctmp), 15*i+10,16); } Httpsession session = request.getsession (true); session.setattribute ("rand", srand); g.dispose (); Imageio.write (Image, "jpeg", response.getOutputStream ()); } public void destry () {}}3.2 Настройка сервиса в web.xml в файле Web-Inf
// имя и местоположение сервлета <servlet> <servlet-name> authimage </servlet-name> <servlet-class> com.bjpowernode.drp.util.servlet.authimage </servlet-class> </servlet> // Сервлевые работы на этих съемках <servlet> <servlet-name> Authimage </Servlet-name>> <Url-pattern>/Servlet/Login/Authimage </url-pattern> </servlet-mapping>
3.3 Сервлет звонков на стойке регистрации
код JSP:
<img id = "img" style = "cursor: pointer;" src = "$ {pagecontext.request.contextPath}/servlet/login/outmage" onclick = "changeImg ()">JS:
// Щелкните код проверки, чтобы изменить функцию изображения изменение () {var img = document.getElementbyId ("img"); img.src = "$ {pagecontext.request.contextPath}/servlet/login/uthimage? d ="+math.random (); вернуть false;}4. Резюме
Благодаря этому изучению кода проверки я также получил определенное понимание взаимодействия между всем сервлетом и кодом фронтального кода, и передача данных также значительно улучшилась. Поэтому мне все еще нужно узнать больше об этих навыках и суммировать их в будущем. Только таким образом знание может быть твердым.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.