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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как первой JSP сранице сообщить, что включённая в, неё JSP страница выбрасывает исключение? 
V
    Опции темы
Иван Человеков
  Дата 13.4.2007, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Доброго дня!

Ребята, я включил в первую страницу JSP в вторую (docCalculationZpl.jsp):
Код

<jsp:include page="docCalculationZpl.jsp" flush="true" />


Подскажите пожалуйста, как мне сказать первой странице, что старница docCalculationZpl.jsp может выкинуть исключение SQLException?

Спасибо smile
PM ICQ   Вверх
Иван Человеков
  Дата 13.4.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ребята сделал так:
Код

<html>
  <head>
  </head>
  <%
      try{
  %>

  <body background="<%=request.getContextPath()%>/pic/viewRaschet3213.JPG">

  <form action="<%=request.getContextPath()%>/centr/raschet/Raschet.jsp">
      <input value="Вернутся." type="submit"/>
  </form>
  <form action="printDocCalculationZpl.jsp">
      <input value="Печать" type="submit"/>
  </form>
  <!-- Пишем какую страницу будем печатать-->
  <jsp:include page="docCalculationZpl.jsp" flush="true" />

  </body>
  <%
      } catch (Exception sqle) {
          request.getRequestDispatcher(Final.urlMeassage + "В сервлете странице произошла ошибка " + sqle.getMessage()).forward(request, response);
          sqle.printStackTrace();
      }
  %>
</html>


Подскажите пожалуйста, почему не происходит переход по ссылке, либо на странице не пишется ошибка?
Как правильно обработать ошибку?

Спасибо smile
PM ICQ   Вверх
Stampede
Дата 13.4.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

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



Цитата(Иван Человеков @  13.4.2007,  04:08 Найти цитируемый пост)
Подскажите пожалуйста, как мне сказать первой странице, что старница docCalculationZpl.jsp может выкинуть исключение SQLException?


А тебе, собственно, зачем? У тебя есть идея, как его (исключение) обработать? Сомневаюсь.

А вообще такие действия как доступ к данным лучше осуществлять не в коде страниц. Я полагаю, у тебя есть какой-нибудь MVC? А если нету, то давай лучше с этого и начнем. Чем раньше ты к этому придешь, тем будет лучше для тебя. Поверь, на одних JSP-шках далеко не уедешь...



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
Иван Человеков
Дата 13.4.2007, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Stampede,  есть контроллер  и модель, просто дело в том, что я не знаю как в классе контроллера(не сервлете) обработать исключение(чтобы пользователь получил сообщение) - приходится его выносить на верх, а страница вместо того чтобы пользователя перенаправить к странице с сообщением, отрабатывает на половину.

Спасибо smile
PM ICQ   Вверх
tux
Дата 13.4.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


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

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



Цитата(Иван Человеков @  13.4.2007,  14:58 Найти цитируемый пост)
просто дело в том, что я не знаю как в классе контроллера(не сервлете) обработать исключение(чтобы пользователь получил сообщение) 

А в чем проблема-то? Ловишь в сервлете исключение. Из секции throw кидаешь юзера на JSP с сообщением об ошибке, а если все прошло нормально, то на другую JSP, где тебе что-то показать нужно. Вот и всё. А на самой странице обработать исключение будет весьма непросто.
PM MAIL Skype GTalk Jabber YIM   Вверх
Бонифаций
Дата 13.4.2007, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а все таки забавная опечатка в названии темы

Это сообщение отредактировал(а) Бонифаций - 13.4.2007, 17:12


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Иван Человеков
  Дата 14.4.2007, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(tux @  13.4.2007,  15:17 Найти цитируемый пост)
Ловишь в сервлете исключение. Из секции throw кидаешь юзера на JSP с сообщением об ошибке
tux, но у меня ведь это не сервлет, а для форварда надо request и response. Подскажи пожалуйста как это сделать  smile 

 
Цитата(Бонифаций @  13.4.2007,  17:12 Найти цитируемый пост)
а все таки забавная опечатка в названии темы
Не заметил, поделись пожалуйста  smile 

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


Бывалый
*


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

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



Чтобы было применительно к чему говорить, приведу код, если будет время и желание, подскажите пожалуйста, что поравить/изменить, чтобы правильно обработать ошибку  smile 

Страница вывода таблицы с расчитанной зарплатой viewDocCalculationZpl.jsp:
Код
<%@ page import="java.sql.SQLException" %>
<%@ page import="com.Djordano_Bruno.zpl.nastroika.Final" %>
<%--
  Предосмотр документа "Ведомость расчитанной зарплаты" с возможностью вернутся назад, либо напечатать
  User: Egorka  Date: 10.04.2007  Time: 9:56:58
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>
  <head>
  </head>
  <%
      try{
  %>

  <body background="<%=request.getContextPath()%>/pic/viewRaschet3213.JPG">

  <form action="<%=request.getContextPath()%>/centr/raschet/Raschet.jsp">
      <input value="Вернутся." type="submit"/>
  </form>
  <form action="printDocCalculationZpl.jsp">
      <input value="Печать" type="submit"/>
  </form>
  <!-- Пишем какую страницу будем печатать-->
  <jsp:include page="docCalculationZpl.jsp" flush="true" />

  </body>
  <%
      } catch (Exception sqle) {
          request.getRequestDispatcher(Final.urlMeassage + "В сервлете странице произошла ошибка " + sqle.getMessage()).forward(request, response);
          sqle.printStackTrace();
      }
  %>
</html>

Здесь Final.urlMeassage  равно "/service/Message.jsp?message=". Это ссылка на страницу сообщений пользователю.

Вот сама таблица docCalculationZpl.jsp(я её печатаю, потому и понадобилось включать страницу в страницу):
Код
<%@ page import="java.util.Iterator" %>
<%@ page import="java.util.List" %>
<%@ page import="com.Djordano_Bruno.zpl.model.ModelCalculationZpl" %>
<%@ page import="com.Djordano_Bruno.zpl.model.ModelFirms" %>
<%@ page import="com.Djordano_Bruno.zpl.nastroika.IniZpl" %>
<%@ page import="com.Djordano_Bruno.zpl.tools.ChisloToStr" %>
<%@ page import="com.Djordano_Bruno.zpl.nastroika.FinTable" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="com.Djordano_Bruno.zpl.model.ModelMonth" %>
<%@ page import="com.Djordano_Bruno.zpl.controller.CntrlFind" %>
<%@ page import="com.Djordano_Bruno.zpl.nastroika.Final" %>
<%--
  Ведомость зарплаты
  User: Egorka  Date: 10.04.2007  Time: 9:52:58
--%>
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  <jsp:useBean id="CntrlSchtatnRaspis" scope="request" class="com.Djordano_Bruno.zpl.controller.CntrlSchtatnRaspis" />
  <jsp:useBean id="CntrlFirms" scope="request" class="com.Djordano_Bruno.zpl.controller.CntrlFirms" />

    <%
//     try {
        String chislo, chisloTxt;
        List ListRaschet;
        Iterator IteratorListRaschet, it;
        ModelCalculationZpl modelRaschet;
        ModelFirms modelFirms;
        ModelMonth modelMonth;
        CntrlFind find = new CntrlFind();
        ChisloToStr chisloToStr = new ChisloToStr();
        int i = 1, recordCount = 0;

        ListRaschet = CntrlSchtatnRaspis.RaschetToModelSchtatnRaspis();
        IteratorListRaschet = ListRaschet.iterator();//Интерфейс - даёт возможность циклически пройти циклически через коллекцию

        //Получаем кол-во работников в фирме
        it = ListRaschet.iterator();
        while (it.hasNext()) {
            recordCount++; //
            it.next();
        }

        //В заголовок получим ФИО директора
        modelFirms = CntrlFirms.getFirmsId(Integer.parseInt(IniZpl.getProperty(IniZpl.key_active_id_firm)));
        modelMonth = find.getModelMonth();

        chislo = CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_StatnRaspisTotallSumm);

        chisloTxt = chisloToStr.NumerToStr(chislo);
    %>
   <p align="right">
    <!-- Таблица с рассчитанной заработной платой -->
    <table border=1 cellspacing="0" cellpadding="0" width="100%" style="font-size:8pt" >
        <thead style="display: table-header-group">
            <tr>
                <td rowspan="2" align="center">№</td>
                <td rowspan="2" align="center">Ф.И.О.</td>

                <td colspan="11" align="center">Начислено заработной платы.</td>
                <td colspan="5" align="center">Зачтено и удержано</td>
                <td rowspan="2" align="center">Сумма к выдаче</td>
            </tr>
            <tr>
                <td align="center">Должност. оклад</td>
                <td align="center">Кол. отраб. дней</td>
                <td align="center">Повремен. оплата</td>
                <td align="center">Персон. надбавка</td>
                <td align="center">Ненормир. рабочий день</td>
                <td align="center">Надбавка за выслугу лет</td>
                <td align="center">За очередной и дополнит. отпуск</td>
                <td align="center">Премия</td>
                <td align="center">Премия не из фонда</td>
                <td align="center">Пособие по временной нетрудоспособ.</td>
                <td align="center">Всего начислено</td>

                <td align="center">Аванс за 1-ю половину месяца</td>
                <td align="center">Подоходный налог</td>
                <td align="center">1 % отчислений в ФСЗН</td>
                <td align="center">Удержано в 7 счёт</td>
                <td align="center">Итого удержаний</td>

            </tr>

        </thead>
        <tbody>
            <% //Скриптлеты
                while (IteratorListRaschet.hasNext()) {
                    modelRaschet = (com.Djordano_Bruno.zpl.model.ModelCalculationZpl) IteratorListRaschet.next();
            %> <%-- Закрытие скриптлета для вставки данных с неизменной структурой --%>
            <tr>
                <td align="center"><%= modelRaschet.getNumber()%></td>
                <td align="center"><%= modelRaschet.getFio()%></td>
                <td align="center"><%= modelRaschet.getMonthOkladSumma()%></td>
                <td align="center"><%= modelRaschet.getKolDayOtrabotano()%></td>
                <td align="center"><%= modelRaschet.getNachTimeOplata()%></td>
                <td align="center"><%= modelRaschet.getNadbPersSumma()%></td>
                <td align="center"><%= modelRaschet.getNadbNoNormalWorkDaySumma()%></td>
                <td align="center"><%= modelRaschet.getNadbVislYearSumma()%></td>
                <td align="center"><%= modelRaschet.getNachZaOtpusk()%></td>
                <td align="center"><%= modelRaschet.getNachPremia()%></td>
                <td align="center"><%= modelRaschet.getNachPremiaNoFond()%></td>
                <td align="center"><%= modelRaschet.getNachPosobieNoWork()%></td>
                <td align="center"><%= modelRaschet.getNachTotallSumm()%></td>
                <td align="center"><%= modelRaschet.getUderjAvans()%></td>
                <td align="center"><%= modelRaschet.getUderjPodochodni()%></td>
                <td align="center"><%= modelRaschet.getUderjToFSZN()%></td>
                <td align="center"><%= modelRaschet.getUderjSeventSchet()%></td>
                <td align="center"><%= modelRaschet.getUderjTotallSumm()%></td>
                <td align="center"><%= modelRaschet.getTotallSummZpl()%></td>
            </tr>
            <%
                i++;
                }
            %>
            <tr>
                <td colspan=2>ИТОГО: </td> <!-- 1,2 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_monthOkladSumma)%></td> <!-- 3 -->
                <td>&nbsp</td>    <!-- 4 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_nachTimeOplata)%></td>  <!-- 5 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_nadbPersSumma)%></td> <!-- 6 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_nadbNoNormWorkDaySumma)%></td> <!-- 7 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_nadbVislYearSumma)%></td> <!-- 8 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_nachZaOtpusk)%></td> <!-- 9 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_nachPremia)%></td> <!-- 10 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_nachPremiaNoFond)%></td> <!-- 11 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_nachPosobieNoWork)%></td> <!-- 12 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_NachTotallSumm)%></td> <!-- 13 -->

                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_uderjAvans)%></td> <!-- 14 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_uderjPodochodni)%></td> <!-- 15 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_uderjToFSZN)%></td> <!-- 16 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_uderjSeventSchet)%></td> <!-- 17 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_UderjTotallSumm)%></td> <!-- 18 -->
                <td align="center"><%= CntrlSchtatnRaspis.getTotallSumm(FinTable.raschet_TotallSummZpl)%></td> <!-- 19 -->
            </tr>
        </tbody>
    </table>
    </p >
    <pre>
        Главный бухгалтер                                                  <%=modelFirms.getFio_Gl_Buh()%>
    </pre>
<%
//    } catch (SQLException sqle) {
//        request.getRequestDispatcher(Final.urlMeassage+"В сервлете странице произошла ошибка " + sqle.getMessage()).forward(request, response);
//        sqle.printStackTrace();
//    }
%>


Вот класс , который заолняет модель данными из СУБД перед выводом CntrlSchtatnRaspis:
Код
package com.Djordano_Bruno.zpl.controller;
import com.Djordano_Bruno.zpl.model.ModelCalculationZpl;
import com.Djordano_Bruno.zpl.tools.ConnectDb;
import com.Djordano_Bruno.zpl.nastroika.IniZpl;
import com.Djordano_Bruno.zpl.nastroika.FinTable;

import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Date;
import java.util.List;
import java.util.ArrayList;
/**
 * Контроллер для Штатного расписания, заполняет информацией коллекции объектов моделей каждого сотрудника
 * User: Egorka * Date: 20.03.2007 * Time: 9:00:06
 */
public class CntrlSchtatnRaspis {
    /*Возвращает общую сумму начислений по всем сорудникам фирмы по заданному столбцу
    * */
    public String getTotallSumm(String val) throws SQLException{
            String res_return;
            ResultSet resultset;
            PreparedStatement sqlRashetThriTabTotalSumm;

            Connection con = ConnectDb.getConnection();
            sqlRashetThriTabTotalSumm = con.prepareStatement("SELECT sum(" + val + ") as summ " +
                    "FROM firms f,person p ,raschet r " +
                    "WHERE f.id=p."+ FinTable.person_id_firms +" AND p.id=r."+FinTable.raschet_id_person+" AND f.id=? AND r."+FinTable.raschet_date+"=?;");
            sqlRashetThriTabTotalSumm.setInt(1, Integer.parseInt(IniZpl.getProperty(IniZpl.key_active_id_firm)));
            sqlRashetThriTabTotalSumm.setDate(2, Date.valueOf(IniZpl.getProperty(IniZpl.key_active_year) + "-" + IniZpl.getProperty(IniZpl.key_active_month) + "-01")); //Теперь формат даты таков : yyyy-mm-01
            resultset = sqlRashetThriTabTotalSumm.executeQuery();

            if (resultset.next()) {//Если запрос вернул чтонить
                res_return = resultset.getString("summ");
            } else res_return = "0";

            return res_return;
    }

    /*Выбирает из базы зарплату каждому сотруднику и заполняет модель инфорацией
    * */
    public List RaschetToModelSchtatnRaspis() throws SQLException {
        Connection con = ConnectDb.getConnection();
        PreparedStatement  sqlRashetThriTables;
        ResultSet resultset;
        List listSchtatnRaspis=new ArrayList();
        Date date;

        sqlRashetThriTables= con.prepareStatement("SELECT *" +
                " FROM firms f,person p ,raschet r\n" +
                "WHERE f.id=p."+FinTable.person_id_firms+" AND p.id=r."+FinTable.raschet_id_person+" AND f.id=? and r."+
                FinTable.raschet_date+"=?;");

        date = Date.valueOf(IniZpl.getProperty(IniZpl.key_active_year)+"-"+ IniZpl.getProperty(IniZpl.key_active_month)+"-01"); //Теперь формат даты таков : yyyy-mm-01
        sqlRashetThriTables.setInt(1, Integer.parseInt(IniZpl.getProperty(IniZpl.key_active_id_firm)));
        sqlRashetThriTables.setDate(2,date);
        resultset = sqlRashetThriTables.executeQuery();

        while (resultset.next()){
            ModelCalculationZpl modelCalculationZpl = new ModelCalculationZpl();

            modelCalculationZpl.setIdPerson(resultset.getInt("r."+FinTable.raschet_id_person));
            modelCalculationZpl.setNumber(resultset.getInt("p."+FinTable.person_number));
            modelCalculationZpl.setDate(date);
            modelCalculationZpl.setDoljnost(resultset.getString("p."+FinTable.person_doljnost));
            modelCalculationZpl.setFio(resultset.getString("p."+FinTable.person_fio));
            modelCalculationZpl.setRazrad(resultset.getInt("r."+FinTable.raschet_razrad));
            modelCalculationZpl.setKoefTarifETC(resultset.getBigDecimal("r."+FinTable.raschet_koefTarifETC));
            modelCalculationZpl.setKoefTarifMejRazr(resultset.getBigDecimal("r."+FinTable.raschet_koefTarifMejRazr));
            modelCalculationZpl.setMonthOkladETC(resultset.getBigDecimal("r."+FinTable.raschet_monthOkladETC));
            modelCalculationZpl.setMonthOkladProc(resultset.getBigDecimal("r."+FinTable.raschet_monthOkladProc));
            modelCalculationZpl.setMonthOkladSumma(resultset.getBigDecimal("r."+FinTable.raschet_monthOkladSumma));
            modelCalculationZpl.setNadbPersProc(resultset.getBigDecimal("r."+FinTable.raschet_nadbPersProc));
            modelCalculationZpl.setNadbPersSumma(resultset.getBigDecimal("r."+FinTable.raschet_nadbPersSumma));
            modelCalculationZpl.setNadbNoNormalWorkDayProc(resultset.getBigDecimal("r."+FinTable.raschet_nadbNoNormWorkDayProc));
            modelCalculationZpl.setNadbNoNormalWorkDaySumma(resultset.getBigDecimal("r."+FinTable.raschet_nadbNoNormWorkDaySumma));
            modelCalculationZpl.setNadbVislYearProc(resultset.getBigDecimal("r."+FinTable.raschet_nadbVislYearProc));
            modelCalculationZpl.setNadbVislYearSumma(resultset.getBigDecimal("r."+FinTable.raschet_nadbVislYearSumma));
            modelCalculationZpl.setStatnRaspisTotallSumm(resultset.getBigDecimal("r."+FinTable.raschet_StatnRaspisTotallSumm));
            modelCalculationZpl.setKolDayOtrabotano(resultset.getInt("r."+FinTable.raschet_kolDayOtrabotano)); 
            modelCalculationZpl.setNachTimeOplata(resultset.getBigDecimal("r."+FinTable.raschet_nachTimeOplata));
            modelCalculationZpl.setNachZaOtpusk(resultset.getBigDecimal("r."+FinTable.raschet_nachPremia));
            modelCalculationZpl.setNachPremiaNoFond(resultset.getBigDecimal("r."+FinTable.raschet_nachPremiaNoFond));
            modelCalculationZpl.setNachPosobieNoWork(resultset.getBigDecimal("r."+FinTable.raschet_nachPosobieNoWork));
            modelCalculationZpl.setNachTimeOplata(resultset.getBigDecimal("r."+FinTable.raschet_nachTimeOplata));
            modelCalculationZpl.setNachTotallSumm(resultset.getBigDecimal("r."+FinTable.raschet_NachTotallSumm));
            modelCalculationZpl.setUderjAvans(resultset.getBigDecimal("r."+FinTable.raschet_uderjAvans));
            modelCalculationZpl.setUderjPodochodni(resultset.getBigDecimal("r."+FinTable.raschet_uderjPodochodni));
            modelCalculationZpl.setUderjToFSZN(resultset.getBigDecimal("r."+FinTable.raschet_uderjToFSZN));
            modelCalculationZpl.setUderjSeventSchet(resultset.getBigDecimal("r."+FinTable.raschet_uderjSeventSchet));
            modelCalculationZpl.setUderjTotallSumm(resultset.getBigDecimal("r."+FinTable.raschet_UderjTotallSumm));
            modelCalculationZpl.setTotallSummZpl(resultset.getBigDecimal("r."+FinTable.raschet_TotallSummZpl));

            listSchtatnRaspis.add(modelCalculationZpl);
        }

        return listSchtatnRaspis;
    }

}



Подскажите что поменять, чтобы, я мог сообщить пользователю об ошибке.

Спасибо  smile 
PM ICQ   Вверх
tux
Дата 14.4.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


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

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



Цитата(Иван Человеков @  14.4.2007,  06:12 Найти цитируемый пост)
tux, но у меня ведь это не сервлет, а для форварда надо request и response

Как это не сервлет? JSP - это сервлет и есть. В нем определены переменные request и response, можно их прямо в скриплетах и использовать. Только боюсь внутри JSP сделать форвард не удастся.

Цитата(Иван Человеков @  14.4.2007,  07:47 Найти цитируемый пост)
Подскажите что поменять

Подскажу. У тебя приложение классическое. В доисторическую пору, когда стандарт J2EE только начал развиваться, существовали только книжки от Sun, была всего пара MVC-фреймворков, а те, кто знал пару паттернов и как работать с фреймворками считались мегагурами, все вот так и писали. Но это ведь не значит что нужно опять начинать с того же самого и лет эдак через пяток наконец прийти к мысли, что это все неправильно. Для кого куча народу старается, придумывает всякие Spring, Wicket, PicoContainer, да хоть Struts тот же. Это ведь все не просто так? Люди думали, анализировали свой и чужой опыт, в конце концов придумали как же все удобнее сделать, софт написали. А ты чужой опыт игнорируешь. Я по секрету скажу, ты сам все это свое приложение через полгода поддерживать не сможешь, куча скриплетов на понятности кода положительно не сказывается. Тем более у тебя сейчас проблемы возникают даже с обработкой исключений (кстати, эта проблема решена в большинстве фреймворков). Скорее всего, ты ее решишь, но, как бы это сказать, нестандартными способами, а это тоже отрицательно повлияет на код. Справедливости ради скажу, что ты не один такой, я на днях "портал" видел, целиком написанный на JSP. Что там в коде творится не передать словами. 

Поэтому рекомендую следующее. Выбрать себе какой-нибудь MVC-фреймворк, почитать про паттерны и провести рефакторинг кода. Как работают сервлеты и JSP ты думаю уже понял, ну и не надо тебе больше. Более глубокие знания с опытом придут. 
PM MAIL Skype GTalk Jabber YIM   Вверх
Иван Человеков
  Дата 15.4.2007, 05:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо, tux  smile , буду двигаться дальше  smile 
PM ICQ   Вверх
Иван Человеков
  Дата 15.4.2007, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(tux @  14.4.2007,  11:35 Найти цитируемый пост)
Для кого куча народу старается, придумывает всякие Spring, Wicket, PicoContainer, да хоть Struts тот же. Это ведь все не просто так? Люди думали, анализировали свой и чужой опыт, в конце концов придумали как же все удобнее сделать, софт написали.


tux, не удержусь чтобы спросить smile Почему SUN не издаст какойнибудь MVC-фреймворк и не всключит его в стандарт J2EE, или поддержит уже имеющийся? 
Наверное по неграмотности моей, но у меня сложилось такое впечатление, что они отстали от жизни и в упор не замечают успешных MVC-фреймворк других производителей. Это что инерционность и неразворотливость корпорации?
Спасибо smile
PM ICQ   Вверх
tux
Дата 15.4.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


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

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



Цитата(Иван Человеков @  15.4.2007,  07:57 Найти цитируемый пост)
Почему SUN не издаст какойнибудь MVC-фреймворк и не всключит его в стандарт J2EE, или поддержит уже имеющийся? 

Sun поддерживает разработку Struts, сотрудники Sun его и делают. А JavaServer Faces сейчас входит в состав J2EE - http://java.sun.com/javaee/technologies/.
PM MAIL Skype GTalk Jabber YIM   Вверх
Бонифаций
Дата 15.4.2007, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Иван Человеков @  14.4.2007,  06:12 Найти цитируемый пост)

Цитата(Бонифаций @  13.4.2007,  17:12 Найти цитируемый пост)
а все таки забавная опечатка в названии темы
Не заметил, поделись пожалуйста  smile 



Как первой JSP сранице сообщить, что включённая


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Иван Человеков
  Дата 16.4.2007, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



tux, спасибо понятно smile

Бонифаций, да  smile, символично вышло...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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