Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопросы к JSP и Servlets 
:(
    Опции темы
ElectricalStorm
Дата 22.6.2004, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9




Проясните пожалуйста возникший в голове бардак...

1) Я так понимаю есть у меня JSP это типа Верстка + Java мешанина... которая как-то работает самостоятельно точнее Web Server сам понимает JSP теги и их интерпритирует (кстати а что это за Web Server такой)
2) Есть servlet'ы это Java програмы расположенные на сервере к которым я могу обращатся через Web Server
как к cgi скриптам, но там верстки нет тада(!) раз там верстки нет у них (сервлетов) должны быть либо типа SSI что-то либо какой то шаболнизатор тоесть теги более высокого уровня не HTML которые встраиваются в сервлет и потом происходит транформация в HTML и на клиента отдается вот ...
если такие шаблонизаторыы есть хотелось бы узнать как они называются ...
3) И наконец каким боком здесь EJB ?

Спасибо !






--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
Domestic Cat
Дата 22.6.2004, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



1. На самом деле контеuнер компилирует JSP в Servlet и получает обычныu класс smile.gif Например y Tomcat ети классы можно нажти в папке Work/Catalina.
2. Не понял? Сервлет - ето класс, которыж получает реквест и отсылает респонс ТАКИМ КАКИМ ego yвидит броусер клиента. При чем тут шаблонизатор? Сервлет посылает респонс которыж содержит скажем <img src=""> ну а броусер интерпретирует етот теxт. Сервлет абсол-тно не занимается версткоu, шаблонами и пр - ето программа которую пишете Вы.
3. При том что EJB - tozhe часть J2EE, кстати более еффективная технология по части производительноисти и пр. Можно обеспечить коммуникацию JSP/Servlets и EJB; но для обычных wеб-саuтов JSP/Servlets с головоu хватит.
smile.gif

Это сообщение отредактировал(а) Domestic Cat - 22.6.2004, 19:43


--------------------

PM   Вверх
ElectricalStorm
Дата 22.6.2004, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9



Большое спасибо но все-таки не все ясно...

Значит сервлет получает реквест и отсылает респонс ТАКИМ КАКИМ ego yвидит броусер клиента
т.е

// Я сервлет
импорты
.
.
.
реквест = гет реквест;
если (реквест.экшн эквивалентно логин) {
респонсе = "Введите логин <input type=text name=login><br>"+
"Введите пароль<input type=password name=password>";
}
// и терь куда-нибудь типа
принт респонсе;

вот так ?


если так то это таже самая мешанина... кода и верстки тока маленько сдругой стороны....





--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
Domestic Cat
Дата 22.6.2004, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Сервлет конечно можно использовать для формирования реквеста, например
Код

...
out.print("</UL><HR><FORM METHOD=POST>");
out.print("Enter your email address: <INPUT TYPE=TEXT NAME=email><BR>");
out.print("<INPUT TYPE=SUBMIT NAME=action VALUE=subscribe>");
out.print("<INPUT TYPE=SUBMIT NAME=action VALUE=unsubscribe>");
out.print("</FORM></BODY></HTML>");
...

Получается дежствительно мешанина. Поетому я бы советовал прочесть Falkner, Jones. Servlets and JSP the J2EE Web Tier (http://www.jspbook.com/index.jsp ) но поскольку возможно такоu книжки вы не наuдете, то вкраtце суть в следуюшем:

1. JSP используется ТОЛьКО для преzентации и получения/прикрепления обьектов от/к session, page, application, request. Если нужно например сделать что-то еше (то что называетса business logic) na .jsp stranice, используuте tag-фаuлы, классические тег classy, simple-теги. В результате страница не будет також мешаниноu.
2. Сервлеты используюстя ТОЛьКО как фильтры и для business logic. Например, при переходе на страницу "форум" сервлет читает из DB и присоединяет список тем к session , передает реквест .jsp, а .jsp просто получает список и показывает его (желательно через JSTL/tags). В результате не нужно никаких out.println-ov.

Например вам надо написать страницу регистрации. Вы даете ссылку не на нее, а на сервлет которыu генерирует, skazhem, анти-бот image, сохраняет его и перенаправляет реквест на обычную форму, которая посылает POST реквест на другоu сервлет. Етот сервлет загоняет все в DB, проверяет что нужно, посылает email, итп и перенаправляет реквест на страницу "успешная регистрация".




--------------------

PM   Вверх
DarkDS
Дата 22.6.2004, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 1
Всего: 16



Не совсем. JSP - это Java Server Pages. Теговый язык, который компилится на сервере и выдается конечному пользователю в виде ХТМЛ страницы.
Есть 2-а способа использования JSP.
1. Инлайн подстановка кода. То есть весь код написан в перемешку с ХТМЛ кодом.
К примеру так:
Код
<table>
<%

Enumeration e = request.getHeaderNames();
while (e.hasMoreElements()) {
 String name = (String) e.nextElement();
 %><tr><td><%= name %><td><%= request.getHeader(name) %>
 <%
}

%>
</table>

2. Вариант это теговое использование. То есть вся обработка происходит в написанных программистом Тегах. Класс тега юзера наследуется от класса Тег, описывается параметры тега в спец классе-сателите и вот этот тег, скомпилиный сервером, уже вставляется в код. То есть вставляется что то типа
Код
<table>
<%TableGeneratorTag%>
</table>

и при генерации страницы управление будет передаватся из сервера тегу и отображать полученный из тега результат.
Дальнейшее поведение не зависит от способа написания.
данная страничка генерится в класс JavaPage, унаследованный от сервлета, дается классу реквест, ожидается респонс, и управление передается данному классу. Класс сам пишет в поток респонса то, что ему нужно и все.

Это сообщение отредактировал(а) DarkDS - 22.6.2004, 20:41
PM MAIL   Вверх
ElectricalStorm
Дата 22.6.2004, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9



Спасибо большое !


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
Domestic Cat
Дата 22.6.2004, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Ну я имел в виду советы Falkner'a, Jones'a а не в целом JSP. Использовать JSP можно как угодно, но для избежания мешанины и nuzhno разделение труда между JSP и Servlets - в J2EE eto nazyvaetsja
MVC pattern.


--------------------

PM   Вверх
Катена
Дата 13.3.2007, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.1.2007

Репутация: нет
Всего: нет



Помогите пожалуйста! Не компилируется сервлет(красным помечено ошибки)

[code=java]
package bonus.controllers;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BonusCalculationServlet extends HttpServlet {

    public void init(ServletConfig config) {
        System.out.println("BonusCalculationServlet: init()");
    }
    
    public double calculateBonus(int multiplier, double bonus) {
        double calculatedBonus = (multiplier * bonus);
        return calculatedBonus;
    }

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

        String inputMultiplier = request.getParameter("multiplier");
        String ssn = request.getParameter("ssn");

        Integer multiplierAsInteger = new Integer(inputMultiplier);
        int multiplier = multiplierAsInteger.intValue();

        double inputBonus = 100.00;
        double bonus = this.calculateBonus(multiplier, inputBonus);

        response.setContentType("text/html");

        PrintWriter out = response.getWriter();

        out.println("<HTML><HEAD><TITLE>");
        out.println("Servlet Example - Bonus Calculator");
        out.println("</TITLE></HEAD><BODY>");

        out.println("<H1>Bonus Calculation:</H1>");
        out.println("<P>Social Security Number: " + ssn + "<P>");
        out.println("<P>Multiplier: " + multiplier + "<P>");
        out.println("<P>Bonus Amount: " + bonus + "<P>");

        out.println("</BODY></HTML>");

        out.close();
    }

    public void destroy() {
        System.out.println("BonusCalculationServlet: destroy()");
    }
}

Я не все указала. Ошибки выдаются на HttpServlet

Это сообщение отредактировал(а) tux - 13.3.2007, 08:19
PM MAIL   Вверх
tux
Дата 13.3.2007, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Нужна библиотека с J2EE-классами. В Томкате это ${TOMCAT_HOME}/common/lib/servlet-api.jar.
PM MAIL Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0548 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.