JSP:n kanssa leikkinyt jonkun verran ja aloin tässä pohtimaan hieman resurssien käytöstä.
On n 1 kappaletta .jsp sivuja, joissa jokaiseen importataan headeri, jossa taasen määritellään konnut mysql-kantaan
--
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection con;
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/qwerty?user=xxx;password=xxx");
Statement state = con.createStatement();
ResultSet result;
--
Jokaisella sivulla siis tehdään enemmän tai vähemmän hakuja, mutta jotenkin omasta mielestä tuntuu hieman turhalta/tyhmältä määritellä nuo samat tilpehöörit joka hemmetin sivulle.
Kysymys siis kuuluukin, tekeekö JVM oikeasti uudet instanssit ym. olioista käyttäen näin resursseja vai osaako se huomata, että nämä instassit ovat jo olemassa joten en luo niitä uudestaan ?
Tutoriaaleja jonkun verran lukenut, ja ymmärtänyt, että toiminnallisuutta ei nyt yleensäkään kannatta edes .jsp:llä toteuttaa, mutta onko mitään yleisiä vinkkejä miten jdbc jsp -kombinaatiolla kannattaa koodailla "hyvän tavan mukaisesti" ?
Beanit ja servletit ajattelin opetella vasta kun .jsp on hallussa. Vai onko tämä väärä lähtökohta ?
On n 1 kappaletta .jsp sivuja, joissa jokaiseen importataan headeri, jossa taasen määritellään konnut mysql-kantaan
--
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection con;
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/qwerty?user=xxx;password=xxx");
Statement state = con.createStatement();
ResultSet result;
--
Jokaisella sivulla siis tehdään enemmän tai vähemmän hakuja, mutta jotenkin omasta mielestä tuntuu hieman turhalta/tyhmältä määritellä nuo samat tilpehöörit joka hemmetin sivulle.
Kysymys siis kuuluukin, tekeekö JVM oikeasti uudet instanssit ym. olioista käyttäen näin resursseja vai osaako se huomata, että nämä instassit ovat jo olemassa joten en luo niitä uudestaan ?
Tutoriaaleja jonkun verran lukenut, ja ymmärtänyt, että toiminnallisuutta ei nyt yleensäkään kannatta edes .jsp:llä toteuttaa, mutta onko mitään yleisiä vinkkejä miten jdbc jsp -kombinaatiolla kannattaa koodailla "hyvän tavan mukaisesti" ?
Beanit ja servletit ajattelin opetella vasta kun .jsp on hallussa. Vai onko tämä väärä lähtökohta ?
Vastaukset 4
Vanhimmat
Kannattaa opetella aluksi servletien perusteet. Web-palvelimessa oleva JSP-Container -alustahan tekee JSP-sivusta servletin, kääntää sen sekä käynnistää servletin. Jos käytät Tomcatia niin käy kattomassa hakemistosta..
Tomcat 5.0\work\Catalina\localhost.." että millaset servletit sun jsp -sivuista on tehty.
Kannattaa tehdä vaikka "ControllServlet.java" -servletti. Sitten teet vaikka "KirjaBean.java" beanin. Ja sitten jsp -sivut.
ControllServlet:iin teet sitten tuon tietokantayhteyden ja tarvittavat metodit, vaikka haeKirja, lisaaKirja jne.
jsp -sivuilta kutsut metodeja ja importaat sivuille beaneja.
Käy lainaa kirjastosta java -kirja niin saat esimerkit :).
Itse etenin näin:
Perus Java -> JSP -> JSTL -> JavaBeansit -> Frameworkkien käyttö, kuten JavaServer Faces, Struts etc.
Tuohon perus jsp:hen, varsinkaan vanhaan 1.x versioon ei mielestäni kannata hirveästi tuhlata aikaa, sillä nykyään noita scriplettejä ei enää kannata sivuilla käyttää ollenkaan. JSP-sivuille teen tulostuksen käyttäen EL:ää, ja _kaiken_ toiminnallisuuden hoidan java-luokissa. Ja käytän tietenkin valmista frameworkkia, johon sitten pulttaan myös omia juttuja.
Eihän kukaan noin tee. Kannattaa konffata Tomcattiin datasource. Yksi ainoa java.sql.Connection tallennetaan sitten esim. sessioon josta se sitten pyydetään aina kun tarvitaan. Ei muutenkaan kannata paljon javaa koodata jsp sivuille vaan käyttää jotain frame workia, esim. Strutsia.
> osaako se huomata, että nämä instassit ovat jo
> olemassa joten en luo niitä uudestaan ?
Ei. Kyllä se pitää sitten ohjeistaa ihan eri tavalla. Tuossa koodissasi käsket jokaista JSP-sivua avaamaan oman kantayhteytensä, mikä on hidasta ja syö resursseja.
> Tutoriaaleja jonkun verran lukenut, ja
> ymmärtänyt, että toiminnallisuutta ei nyt
> yleensäkään kannatta edes .jsp:llä toteuttaa
Aivan oikein. On myös iso koulukunta, joiden mielestä JSP:tä ei kannattaisi käyttää lainkaan.
> onko mitään yleisiä vinkkejä miten jdbc jsp
> -kombinaatiolla kannattaa koodailla "hyvän tavan
> mukaisesti" ?
Kaipa se sitten jotenkin näin kannattaisi tehdä:
http://www.onjava.com/pub/a/onjava/2004/03/03/sqltags.html