вобщем у метя есть такой сервлет | Код | 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; } }
|
а преподаватель пометил блок- "бизнес логика" и сказал отделить....так я не поняла, как мне его отделить нужно...создать новый сервлет и бин что-ли? да и зачем вообще это надо...ведь тогда в этом сервлете почти ничего не останется, зачем плодить их? объясните пожалуйста, а то может я не так что-то понимаю...
|