Servlet - Передача сообщения из WEB-браузера на сервер

В примере передачи сообщения используются два сервлета : SendMessage.java и DrawMessage.java. Для передачи сообщения используется метод doGet, который определен в форме Form1 страницы HTML, сформированной сервлетом SendMessage. Чтобы можно было отправлять сообщения кириллицы, в сервлете SendMessage установлен "charset=windows-1251" (response.setContentType).

При отсутствии текста сообщения или, если введено слово "hello" сервлет SendMessage.java перенаправляет ответ в сервлет hello (HelloWorld.java).


Листинг сервлета SendMessage.java
 
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class SendMessage extends HttpServlet
{
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  {
   resp.setContentType("text/html;charset=windows-1251");
 
   out.println( "<html>" +
     "<head>" +
      "<title>Send Message</title>" +
     "</head>" +
     "<body bgcolor=#aabbff> " +
      "<form name=Form1 method=GET " +
       "action=http://localhost:8082/servlets-labir/Draw>" +
       "Введите сообщение:    " +
       "<input type=text name=data1><p>" +
       "<input type=submit value=\"Отправить\">" +
      "</form>" +
     "</body>" +
    "</html>"
   );
   out.close();
  }
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Листинг сервлета DrawMessage.java
 
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class DrawMessage extends HttpServlet
{
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  {
   req.setCharacterEncoding("Cp1251");
   resp.setContentType("text/html;charset=windows-1251");
 
   String location = req.getParameter("data1");
 
   if ((location.length() == 0) || (location.equals("hello")))
    resp.sendRedirect("http://localhost:8082/servlets-labir/hello");
   else
   {
    location = new String(location.getBytes("ISO-8859-1"), "Cp1251");
    PrintWriter out = resp.getWriter();
    out.println( "<html>" +
     "<head>" +
      "<title>Draw Message</title>" +
     "</head>" +
     "<body bgcolor=#aaffee>" +
      "<h2>Recieved message</h2>" +
       "Вы отправили сообщение: " + location +
     "</body" +
     "</html>"
    );
    out.close();
   }
  }
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Код объявления сервлетов SendMessage и DrawMessage в дескрипторе поставки web.xml
 
<servlet>
  <servlet-name>Message</servlet-name>
  <servlet-class>SendMessage</servlet-class>
</servlet>
<servlet>
  <servlet-name>Draw</servlet-name>
  <servlet-class>DrawMessage</servlet-class>
</servlet>
 
<servlet-mapping>
  <servlet-name>Message</servlet-name>
  <url-pattern>/Message</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>Draw</servlet-name>
  <url-pattern>/Draw</url-pattern>
</servlet-mapping>


Партнеры:


Rambler's Top100 Рейтинг@Mail.ru