Отправить данные в ответе doPost()?

Я полный новичок в веб-программировании. Я создал приложение с Eclipse Java EE и сервером Tomcat, работающим на localhost.

Цель приложения - получить информацию от клиента и отослать другую информацию.

Я разработал сервлет и реализовал метод doPost(), который работает отлично. Я получаю информацию, которую я сохранил в бине с именем USSDPull, и записываю в текстовый файл с именем log.txt.

public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{


USSDPull ussdpull = new USSDPull();
                ussdpull.setUssdstring(request.getParameter("ussdstring"));
                ussdpull.setSessionid(Integer.parseInt(request.getParameter("sessionid")));
                ussdpull.setMsisdn(request.getParameter("msisdn"));
                ussdpull.setUssdcode(request.getParameter("ussdcode"));
                ussdpull.setEncoding(Integer.parseInt(request.getParameter("encoding")));

                response.setContentType("text/text");
                response.setCharacterEncoding( "UTF-8" );
                PrintWriter out = response.getWriter();
                out.flush();

                out.println("POST received : " + ussdpull.getUssdstring()+" "+ussdpull.getSessionid()+" "+ussdpull.getMsisdn()+" "+ussdpull.getUssdcode()+" "+ussdpull.getEncoding());

                //WRITE IN FILE
                FileWriter fw = new FileWriter("D:/Users/Username/Documents/log.txt", true);
                BufferedWriter output = new BufferedWriter(fw);
                output.write(dateFormat.format(date)+";"+ussdpull.getUssdstring()+";"+ussdpull.getSessionid()+";"+ussdpull.getMsisdn()+";"+ussdpull.getUssdcode()+";"+ussdpull.getEncoding()+"\n");  
                output.flush();
                output.close();
}

Мне нужен сервлет для отправки 2 конкретных логических значений и 1 строки клиенту. Я не знаю, как поступить. Можно ли использовать HttpServletResponse для отправки данных? Или мне нужно найти способ "вызвать" метод doGet()?

1 ответ

Решение

HttpServletResponse сам по себе не дает возможности записать данные обратно клиенту, кроме некоторых заголовков, таких как код ответа.

Однако у него есть метод getOutputStream и метод getWriter() что дает вам соотв. OutputStream или PrintWriter, Вы можете использовать их для записи данных в ответ.

Другие вопросы по тегам