T.M. SoftStudio

feci quod potui, faciant meliora potentes

Google App Engine: Организация обратной связи с пользователем

 

В данной статье предлагается способ организации обратной связи с пользователем с помощью сервиса 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");

}}

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