- Varför hindra direkt åtkomst av jsp-filer? :q
- Jag tvivlar spontant på att ResultSet.getXXX(int) är så överdrivet mycket snabbare än ResultSet.getXXX(String), men det är bara min spontana gissning. Lookupen är ju inte särdeles komplicerad, även om det väl är snabbare att direktindexera med intar i stället.
- Om servlets är multitrådade eller inte beror på servern. Tomcat bör "rimligen" vara det, ja ;)
Hej!
Placerar denna tråd under J2EE, eftersom mycket av inlägget baseras på användning under J2EE.
Håller på med en www-applikation (Tomcat 5.0.18) åt en kund. Applikationen byggs upp av J2EE (servlets & jsp). Applikationen använder MySql(4.0.13) som databas databas.
Vi har märkt att sidorna är en aning långsamma.
Vill nu optimera koden.
Kan man på ett absolut säkert sätt stoppa direkt åtkomst på *.jsp filer?
Försökte med att skapa en <servlet-mapping> i web.xml men det slutade med stack-overflow då en förfrågan övergick till en "for(;;)" loop. ;) Dvs mappningen gjorde det så att varje anrop mot en jsp-sida skickades till servletten som sedan dirigerade förfrågan till en handler. Men då handlern skickade sedan svaret i form av en jsp-sida, så.... ;)
<servlet-mapping>
<servlet-name>MinController</servlet-name>
<url-pattern>/jsp/*</url-pattern>
</servlet-mapping>
Just nu har vi tyvärr det så dumt, att en validering görs även på varje jsp-sida och i den s k controller servletten.
Så vill jag inte ha det.
Sedan några sql-frågor:
Jag har läst om att följande är att föredra:
String t = result.getString(int_värde) // result = (ResultSet)
i stället för:
String t = result.getString("kolumnNamn")
Just nu har jag det så här:
UserBean b;
b.setName(result.getString("name") );
b.setEmail(result.getString("email") );
b.setAge(result.getInt("age") );
om jag nu använder result.getString(int_värde) så inser jag inte riktigt, hur jag på ett enkelt sätt kan göra som ovan, utan en himla massa switch() satser...
Om jag inte kör med kolumn-namnen så måste jag ju veta i vilken ordning allt finns i ResultSet objektet. Så har jag det för mig iaf.
Sen måste jag ocksp pilla ihop en s k ConnectionPool, dvs ett system för att "återanvända" uppkopplingarna mot databasen och inte skapa ett nytt för varje anrop. Så som jag har det just nu.
Systemet är skapat för kanske 10-20 personer som inte kommer att använda det samtidigt.
Sen ännu en dum fråga, som jag faktiskt hittills har förbisett: :r
Måste man göra nåt speciellt, för att ha ett system som stödjer föera samtidiga användare?
Servlet-ramverket borde väl vara multitrådad?
