Создайте класс, который расширяет HttpServlet
и добавляет к нему аннотацию @WebServlet
, содержащую требуемый URL-адрес сервлета, который должен прослушивать.
@WebServlet("/yourServletURL")
public class YourServlet extends HttpServlet {}
И просто позвольте указать на этот URL. Я также рекомендую использовать метод POST для неидемпотентных запросов. Вы должны убедиться, что вы указали атрибут
name
полей ввода формы HTML (,
,
и
). Это представляет собой имя параметра запроса HTTP. Наконец, вы также должны убедиться, что интересующие поля ввода заключены внутри желаемой формы и, следовательно, не являются внешними.
Вот несколько примеров различных полей ввода формы HTML :
Создайте метод doPost()
в вашем сервлете, который захватывает представленные входные значения в качестве параметров запроса, введенных в поле ввода name
(не id
!) , Вы можете использовать request.getParameter()
для получения переданного значения из полей с одним значением и request.getParameterValues()
для получения переданных значений из полей с несколькими значениями.
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String gender = request.getParameter("gender");
boolean agree = request.getParameter("agree") != null;
String[] roles = request.getParameterValues("role");
String countryCode = request.getParameter("countryCode");
String[] animalIds = request.getParameterValues("animalId");
String message = request.getParameter("message");
boolean submitButtonPressed = request.getParameter("submit") != null;
// ...
}
При необходимости необходимо выполнить проверку и, наконец, сохраняют его в БД обычным способом JDBC / DAO .
User user = new User(name, pass, roles);
userDAO.save(user);
@eli: изменение sendmail.cf непосредственно обычно не рекомендуется, так как оно сгенерировано макро-компилятором.
Отредактируйте/etc/mail/sendmail.mc для включения строки:
define(`SMART_HOST',`mailrelay.example.com')dnl
После изменения sendmail.mc макро-конфигурационного файла это должно быть перекомпилировано для создания sendmail конфигурационного файла.
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
И перезапустите sendmail сервис (Linux):
# /etc/init.d/sendmail restart
А также устанавливая smarthost, Вы могли бы хотеть также отключить конфигурацию определения имен и возможно сместить Ваш sendmail к нестандартному порту или отключить режим демона.
Серверы, которые являются в сетях со стенами огня или использующий Преобразование сетевых адресов (NAT), не могут иметь в наличии сервисы NIS или DNS. Это создает проблему для sendmail, так как он будет использовать DNS по умолчанию, и если это не будет доступно, то Вы будете видеть сообщения как это в mailq:
host map: lookup (mydomain.com): deferred)
Если Вы не готовы установить соответствующий DNS или сервис NIS, который sendmail может использовать в этой ситуации, Вы будете обычно настраивать определение имен, которое будет сделано с помощью/etc/hosts файла. Это сделано путем включения 'service.switch' файла и определения разрешения файлом, следующим образом:
1: Позвольте service.switch для Редактирования sendmail/etc/mail/sendmail.mc включать строки:
define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl
2: Настройте service.switch для файлов, Создают или изменяют/etc/mail/service.switch для обращения только к/etc/hosts для определения имен:
# cat /etc/mail/service.switch
hosts files
3: Перекомпилируйте sendmail.mc и перезапустите sendmail для этой установки для вступления в силу.
По умолчанию sendmail послушает на порте 25. Можно хотеть изменить этот порт или отключить sendmail режим демона в целом по различным причинам: - если существует политика безопасности, запрещающая использование закрепленных портов - если другой продукт/процесс SMTP должен работать на том же хосте на стандартном порте - если Вы не хотите принимать почту через smtp вообще, просто отправьте его с помощью sendmail
1: Смещать sendmail для использования нестандартного порта. Отредактируйте/etc/mail/sendmail.mc и измените установку "Port" в строке:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
Например, чтобы заставить sendmail использовать порт 125:
DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')
Это потребует, чтобы sendmail.mc был перекомпилирован и sendmail, который будет перезапущен.
2: С другой стороны, отключить sendmail режим демона в целом (Linux) Редактирование/etc/sysconfig/sendmail и изменить установку "DAEMON" к:
DAEMON=no
Это изменение потребует, чтобы sendmail был перезапущен.
http://www.elandsys.com/resources/sendmail/smarthost.html
Sendmail Smarthost
smarthost является хостом, через который передается исходящая почта. Некоторый блок ISPs, исходящий трафик SMTP (порт 25) и, требует, чтобы их пользователи отослали всю почту через почтовый сервер ISP. Sendmail может быть настроен для использования почтового сервера ISP в качестве умного хоста.
Прочитайте связанную статью для инструкции для того, как настроить это.
@Espo: Спасибо за большой совет относительно того, где запустить. Ваша ссылка была бы лучше, если бы я настраивал sendmail для его первого использования вместо того, чтобы брать существующую конфигурацию и сделать это небольшое изменение. Однако, после того как я знал для поиска материала на "SmartHost", я нашел более легкий путь.
Все, что я должен был сделать, было отредактировать мой/etc/mail/sendmail.cf файл для изменения
DS
кому:
DSmailrelay.example.com
затем перезапустите sendmail, и он работал.