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



         

Сервлет CompanyNewsServ - часть 2


}

Метод doGet, как показано в листинге 8.23, проверяет введенные пользователем имя и пароль, сравнивая их с данными в файле свойств, загруженном при инициализации сервлета. Если обнаруживается, что имя соответствует паролю, вызывается метод generateForm, создающий форму HTML для ввода текста нового сообщения.

Листинг 8.23. Метод doGet создает форму для ввода нового сообщения (CompanyNewsServ.java)

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = new PrintWriter(resp.getOutputStream()); String username = req.getParameter("username"); String password = req.getParameter("password"); String action = req.getParameter("action"); String tmp = cnProp.getProperty(username); boolean userok = false ; if( tmp != null ){ userok = tmp.equals( password ); } header( out ); if( userok ){ generateForm( out, username, password ); } else { out.println("<p>User: " + username + " password: " + password + " not found.</p>" ); } footer( out ); }

Заполненная форма посылается методу doPost. Как показано в листинге 8.24, различные текстовые элементы извлекаются и передаются объекту NewsllpKeep с помощью метода addltem.

Листинг 8.24. Метод doPost собирает данные из формы (CompanyNewsServ.java)

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = new PrintWriter(resp.getOutputStream()); String username = req.getParameter("username"); String password = req.getParameter("password"); String action = req.getParameter("action"); String head = req.getParameter("head"); String date = req.getParameter("date"); String topics = req.getParameter("topics"); String shrtStr = req.getParameter("short").trim(); String longStr = req.getParameter("long").trim(); File f = new File( workDir, newsFile ); try { NewsUpkeep nup = new NewsUpkeep( f ); nup.addItem( head, date, topics, username, shrtStr, longStr ); header( out ); out.println("NewsUpkeep is " + nup + "<br />"); footer( out ); } catch( Exception e){ errorMsg( out, "CompanyNewsServ.doPost ", e ); } }




Содержание  Назад  Вперед