Как создать уникальную строку, используя JSP? - PullRequest
2 голосов
/ 14 января 2010

Мне нужно подтвердить адрес электронной почты. Я хочу сделать это, сгенерировав уникальную строку и сделав ссылку на нее, чтобы пользователи нажимали на нее в письме.

Я не знаю, как сгенерировать его с помощью Java.

В php есть функции md5, sha1 и т. Д. Для генерации строки с использованием любого уникального значения, такого как электронная почта. Есть ли такая же функция в jsp?

1 Ответ

9 голосов
/ 14 января 2010

Инструменты одностороннего шифрования, такие как 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...