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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Бизнес логика 
V
    Опции темы
alice18
Дата 6.2.2007, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вобщем у метя есть такой сервлет

Код

package de.sana.eadress.servlet;

import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.sql.*;

import javax.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

import de.sana.eadress.bean.SuchAdresseBean_firma;
import de.sana.eadress.bean.SuchKriterienBean_firma;

public class SuchenServlet_firma extends HttpServlet {
    public void init(ServletConfig config) throws ServletException
    {
        super.init(config);
        try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
        }
        catch (Exception e) {
            throw new ServletException("Couldn't load DB driver :" + e.getMessage(), e);
        }
    }    
    
    public void doGet(HttpServletRequest req,
                            HttpServletResponse res)
                        throws ServletException, IOException {
                    
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        
        HttpSession session = req.getSession();
        SuchKriterienBean_firma suchKriterien =
            (SuchKriterienBean_firma)session.getAttribute("SuchKriterien");

        suchKriterien.setFirma1(req.getParameter("Firma1"));
        ...............................
        
        // ------------------------------------
        // Begin Business Logic
        // ------------------------------------
            
            String errorMsg = "",
            nextStop = " ";
            
        boolean errorDetected = false;
        
        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        
        if (suchKriterien.getFirma1().equals("") && suchKriterien.getStrasse().equals("") && suchKriterien.getPLZ().equals("") && suchKriterien.getOrt().equals("") &&
                suchKriterien.getTelefon1().equals("") && suchKriterien.getemail().equals("")) {
            errorMsg = "Bitte geben Sie Suchbedingung ein!";
            out.println("<p align='center'>" + "<font size='4' face='Arial' color='#FF0000'>" + "<span style='background-color: #FFFFFF'>" + errorMsg + "</font>");
            errorDetected = true;
        }
        RequestDispatcher rd;
        
        if    (errorDetected) {
            nextStop = "/jsp/firma_search.jsp";
            rd = getServletContext().getRequestDispatcher(nextStop);
            rd.include(req, res);
        }
        else
        try {
            con = DriverManager.getConnection("jdbc:odbc:eAdress_Beispiel","root","");
            String query = "Select * from Adressen";
            List<String> parameters = new ArrayList<String>();
            query = appendCondition(query, parameters, "KurzBez", "firma");
            query = appendCondition(query, parameters, "Firma1", suchKriterien.getFirma1());
            ..............................
        
            PreparedStatement s = con.prepareStatement(query);
            Iterator<String> it = parameters.iterator();
            int idx = 1;
            while (it.hasNext()) {
                String value = it.next();
                s.setString(idx++, "%"+value+"%");
            }
            List <SuchAdresseBean_firma> AdresseList = new ArrayList<SuchAdresseBean_firma>();
            stmt = con.createStatement();
            rs = s.executeQuery();
            try {
                while(rs.next()) {
                    SuchAdresseBean_firma SuchAdresse = new SuchAdresseBean_firma();
                    SuchAdresse.setID(rs.getString("ID"));
                    .........................                    AdresseList.add(SuchAdresse);
                }
            } finally {
                rs.close();
                
            }
            // ------------------------------------
            // End Business Logic
            // ------------------------------------
            
        HttpSession session2 = req.getSession(true);
        session2.setAttribute("AdresseList", AdresseList);
        stmt.close();
        nextStop = "/jsp/firma_search_result.jsp";
     rd = getServletContext().getRequestDispatcher(nextStop);
     rd.forward(req, res);    
        }
        catch(SQLException e) {
            out.println("SQLException caught: " + e.getMessage());
        }
        finally {
            try {
                if (con != null) con.close();
                }
            catch (SQLException ignored) { }
        }
        }

    private String appendCondition(
        String query,
        List<String> parameters,
        String column,
        String value)
    {
        if(value.length() > 0) {
            if(parameters.isEmpty())
                query = query + " where "; 
            else
                query = query + " and "; 
            query = query + column + " like ?";
            parameters.add(value);
        }
        return query;
    }
    private String appendCondition2(
            String query,
            List<String> parameters,
            String column,
            String value)
        {
            if(value.length() > 0) {
                if(parameters.isEmpty())
                    query = query + " where "; 
                else
                    query = query + " or "; 
                query = query + column + " like ?";
                parameters.add(value);
            }
            return query;
        }
}



а преподаватель пометил блок- "бизнес логика" и сказал отделить....так я не поняла, как мне его отделить нужно...создать новый сервлет и бин что-ли?

да и зачем вообще это надо...ведь тогда в этом сервлете почти ничего не останется, зачем плодить их? объясните пожалуйста, а то может я не так что-то понимаю...
PM MAIL   Вверх
batigoal
Дата 6.2.2007, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Видимо, он имел в виду, что этот сервлет должен заниматься только отображением данных на страницу, а все реальные операции с базой следует вынести в отдельный класс.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
alice18
Дата 7.2.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ок, спасибо, буду пытаться
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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