Электронный магазин на Java и XML

         

Метод doPost класса...



Листинг 7.6. Метод doPost класса QuestionnaireServ (QuestionnaireServ.java)

public void doPost (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html");
PrintWriter out = new PrintWriter(resp.getOutputStream());
//System.out.println("Start doPost");
HttpSession session = req.getSession(false);
try { if( session == null ){ errorMsg(out, "No Session ", null );
return ; } Interpreter terpret = (Interpreter)session.getValue("xmldocument");
//deprecated //in 2.2 API we use this // (Interpreter)session.getAttribute("xmldocument");
Recorder rb = (Recorder) session.getValue("recorder");
// (Recorder) session.getValue("recorder");
if( terpret == null || rb == null ){ errorMsg( out, "Data not recovered from Session", null );
return; } terpret.doPostQ( out, req, rb );
footer( out );
}catch(Exception e ){ errorMsg( out, "doPost ", e );
} }

В листинге 7.7 показаны некоторые полезные вспомогательные методы класса QuestionnaireServ. Используя метод footer для размещения закрывающих те- гов на каждой странице, можно внизу указывать версию сервлета. Это очень удобно на этапе разработки, а впоследствии из финальной версии сервлета эти теги можно легко удалить.

Отладка сервлетов может оказаться очень непростым делом, особенно если ошибки проявляются лишь время от времени. Отладка особенно затрудняется в том случае, если пользователи не могут четко и однозначно выразить свои проблемы. Для сообщения об ошибках мы предпочитаем использовать метод erroMsg. Если ошибка связана с каким-либо исключением, то на HTML-странице появится сообщение с содержимым стека. Там же указывается и электронный адрес, по которому пользователь может послать сообщение об ошибке и, мы надеемся, копию содержимого стека. Разумеется, вам следует заменить приведенный ниже электронный адрес на свой.



Содержание раздела