2MarkM
>1. Целостность Сессии реализована на уровне протокола верхнего уровня, приложения. Надо прикладывать специальные усилия чтобы ее поддерживать.
Какие усилия, это часть Servlets API ???!!!
Надо только сказать: хочу Session...
>2. Я мало знаком с программированием Сервлетов.
Перевод: лениво прочитать 3 страницы документации
>3. Идея сокетов для меня прозрачна, т.к. соответствует хорошо мне известной модели процедурного и ОО программирования.
Где это ты в sockets OO увидел???
>4. Возможность передавать любые обйекты: теxтст, XМЛ, ява сериализованные обйекты прямо через сокет.
Ты хочешь сказать что в servlets это селать нельзя или труднее?
>5. Навеска ССЛ поверх написанного кода на плэйн сокетак не так уж и трудна.
В случае servlets надо только сконфигурить контейнер, менять код вообще не надо
>6. Я так и понял в чем преимушества сервлетов. Особого бисера, к сожелению не увидел, кроме как просто призывов делать на Сервлетах.
Если бы ты как то более обоснованно разьяснил, с приведением примеров, желательно, чем Сервлеты лучше Сокетов?
Если ты делаешь через sockets, то ты ВСЁ должен делать и тестировать сам: thread pooling, certificates, proxy etc...
В случае servlets это уже всё написали и протестировали для тебя десятки людей!!!
Вот тебе примерчик твоего servletа написанный за 3 минуты:
Код: Выделить всё
public class MarkMServlet extends HttpServlet {
protected void doPost(HttpServletRequest pRequest, HttpServletResponse pResponse) throws ServletException, IOException {
HttpSession session;
String clientString = pRequest.getParameter("client_string");
if ("Hello. I'm klient 'Scott'".equals(clientString)) {
session = pRequest.getSession(); //create Session
session.setAttribute("client", "Scott");
pResponse.getOutputStream().print("Hi. take 5.");
return;
}
if ("Give me data".equals(clientString)) {
session = pRequest.getSession(false);
//check session
if (session == null) {
pResponse.getOutputStream().print("fuck off");
return;
}
// OK
String client = (String) session.getAttribute("client");
session.invalidate(); //session is no more!
pResponse.getOutputStream().print("data: 1 2 'blabla' 3 45 345 'blablabla' 64...");
return;
}
pResponse.getOutputStream().print("fuck off");
}
}