В данной статье предлагается способ организации обратной связи с пользователем с помощью сервиса Logs.
Для организации обратной связи администратора GAE-приложения с пользователем можно использовать различные GAE-сервисы – XMPP, Mail, Channel.
Однако использование данных сервисов сообщений подпадает под биллинг и квоты. Поэтому для получения сообщений от пользователя проще всего использовать журнал приложения, так как использование сервиса Logs ограничено лишь размером журнала и временем хранения сообщений – для бесплатного хостинга это 100 мегабайт и 90 дней.
Для организации сервиса сообщений в HTML-страницу включим блок:
<form id="form_contact" onsubmit="return formContactSubmit();" method="post" action="/contact" >
<label>Введите обратный адрес <br> электронной почты для ответа:</label><br>
<input id="input_email" name="email" type="text" size="30"/><br><br>
<label>Сообщение:</label><br>
<textarea id="text" name="text" rows="5" cols="30"></textarea><br><br>
<img id="btn_reset" src="/img/btn_reset_up.jpg" alt="" class="btn" />
<img id="btn_submit" src="/img/btn_submit_up.jpg" alt="" class="btn" style="margin-left:50px;"/>
</form>
Создадим сервлет, обрабатывающий форму:
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.logging.Logger;
@SuppressWarnings("serial")
public class ContactServlet extends HttpServlet {
private static final Logger log = Logger.getLogger(ContactServlet.class.getName());
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
try{
String message="E-mail: "+(String)req.getParameter("email")+" "+"Message: "+(String)req.getParameter("text");
log.severe(message);
}catch (Exception ex){
System.err.println(ex.getMessage());
}
resp.sendRedirect("contact.jsp");
}}
Для хранения сообщения в журнале ему присваивается статус ошибки, чтобы упростить поиск таких сообщений в журнале, так как предполагается, что приложение хорошо протестировано и ошибки выполнения возникают редко.
