Инструменты одностороннего шифрования, такие как MD5 / SHA / etc, не обязательно генерируют уникальные строки. Две разных строки могут, в частности, генерировать одинаковый хеш. Это, в конце концов, и вся идея одностороннего шифрования: нет (надежного) способа узнать, какой была исходная строка.
Лучше использовать java.util.UUID
, при необходимости в сочетании с базой данных PK или UK, чтобы вы могли просто сгенерировать новую в случае (неожиданного) нарушения ограничения.
Вот основной пример того, как получить такой случайный уникальный ключ:
String key = UUID.randomUUID().toString();
Тем не менее, JSP - это технология представления. Вы не должны писать необработанный код Java в файлах JSP. Используйте taglibs и EL только в JSP. С taglibs вы можете контролировать поток страниц, а с EL вы можете получить доступ к данным бэкэнда. Храните сырой код Java в классах Java, таких как сервлеты, фильтры, компоненты и т. Д.
В этом конкретном случае просто используйте JSP с HTML-формой, которая передает сервлету (контроллеру), который, в свою очередь, генерирует ключ с помощью java.util.UUID
, сохраняет его в БД с помощью JDBC API отправляет электронное письмо с помощью JavaMail API и, наконец, перенаправляет запрос в какой-либо результат JSP.