[thelist] Need help building a simple JSP/MySQL webapp

Hassan Schroeder hassan at webtuitive.com
Tue Jan 31 10:00:44 CST 2006

Rick den Haan wrote (not in this order):

> I might be thinking too much along PHP's mindset here...

Yeah. Not a criticism, but that's obvious from the sample code,
and for the sake of future good practice, something to get over :-)

> My MySQL database is called "jsp_test", in which there's a table called
> "customers" which has four columns for "id", "name", "address" and "phone".
> I want a JSP page that ends up listing my customers, ordered by id. I.e.:

> For JSP, I have absolutely no clue where to go from what I have now. I have
> an excellent Java guidebook (Y. Daniel Liang's "Introduction to Java
> Programming", 5th Edition), which told me to go and download a MySQL JDBC
> connector, which I did, but I don't know where to place it so that Tomcat
> will be able to connect to it, nor what JSP code I have to use to connect to
> it once I get it there.

I don't know that I'd call a book with sample code like that given
"excellent"; it's missing the whole point of JSP/Servlets and the
MVC design pattern (apparently).

On the other hand, correcting it will require writing another book,
which I don't have time to do right now. :-)  So, to your immediate
connect-to-DB problem.

1) you want to use Tomcat's built-in connection pooling; put the
   Connector/J jar in $CATALINA_HOME/common/lib, and follow the
   directions here:
   :: to configure your server.xml and deployment descriptor (the
   web.xml under your app's WEB-INF directory).

2) read the servlet spec; a lot of it won't make sense right now
   but it's important, and it'll grow on you :-)

3) join the tomcat-users mailing list; you'll learn a lot about
   JSP/Servlets, not just Tomcat-specific stuff.

In practice, you never have DB access in a JSP; it's part of the
presentation (View) layer, not the Model or Controller.

So you're going to want to start thinking in terms of Objects. For
your example, you'd create a Customer class that encapsulates the
fields defining a "customer" and accesses them from your DB. Once
you've got that, you can simply reference it from any page, rather
than embedding SQL calls throughout the site. Or to use a popular
acronym: DRY -- Don't Repeat Yourself. :-)

HTH! And feel free to ask for clarification of any of the above;
I'm only on my first cup of coffee...
Hassan Schroeder ----------------------------- hassan at webtuitive.com
Webtuitive Design ===  (+1) 408-938-0567   === http://webtuitive.com

                          dream.  code.

More information about the thelist mailing list