The Tomcat distribution has great docs. There is a tutorial on how to
develop a simple app also. Also, you may want to check out Sun's Java
tutorial on Servlets:

http://java.sun.com/docs/books/tutorial/servlets/


Enjoy!

Michael

----- Original Message -----
From: "Michael Hanna" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <[EMAIL PROTECTED]>
Sent: Monday, August 26, 2002 8:00 PM
Subject: Re: Design Questions..


> thanks, I think I'm starting to understand how all this stuff is
> supposed to work...
>
> Michael
>
> On Monday, August 26, 2002, at 05:59  PM, Michael E. Locasto wrote:
>
> > Michael,
> >
> > I'm sure everyone else is gonna tell you this too, but here are some
> > pointers from just glancing over the code.
> >
> >     - set up your db connection in the init() method, not doGet().
> > doGet()
> > is executed every time the servlet is called with an HTTP GET. So,
> > effectively, you are loading the driver and creating a connection and
> > DBThing object and blah blah blah every time your servlet is called.
> > That's
> > a performance killer.
> >
> >     - better yet, use a Connection Pool that's created on startup. Write
> > your own, or there are many available. I'm sure others will provide
> > links...
> >
> >     - as far as your question: I'm assuming you're using an HTML form to
> > POST/GET to the servlet. There are alot of ways you can go, but a
> > simple one
> > is to have a parameter called 'databaseaction' or whatever, and that
> > indicates which operation the servlet will perform from it's doGet() or
> > doPost(). Alternatvely, you can have a different HTML form/page for each
> > action that calls
> > the servlet (or a different servlet, although that's pretty inefficient)
> > with a different parameter.
> >
> >>
> >> This is easy enough, but how do I have the servlet update its own
> >> output
> >> in the web browser so that it reflects the new changes? Is there a
> >> refresh command or something.
> >
> > You can have the servlet (or JSP) just call itself, and at the end of
> > processing, just display whatever you were going to display normally.
> > Servlets are based on a request/response model, so once the servlet has
> > finished returning data to your browser, it is not going to attempt to
> > push
> > new data out. It would have to be called again after the update takes
> > place.
> >
> >> I was thinking having a jsp page where the user inputs the changes, and
> >> then POST it to the servlet.. still not sure how the page gets updated.
> >> Anybody have any example sites/code??
> >
> > You can have the form on the JSP just call the JSP again. The JSP tests
> > for
> > the right combination of parameters and performs the appropriate
> > actions...
> >
> > e.g. in 'faq.jsp' (this is basically just snippits)
> >
> > <html>
> > <body>
> > <%
> > JDBCConnectionPool connectionPool =
> >
> >
(JDBCConnectionPool)application.getAttribute("edu.tcnj.cs.cmsc446.Connection
> > pool");
> > %>
> > <form name="myform" action="faq.jsp" method="POST">
> > ...
> > </form>
> >
> >
> > <%
> > /* get params, test for form submission, take appropriate action */
> > String submitted=request.getParameter( "Submit" );
> > String questiontext=request.getParameter( "questiontext" );
> > String username=request.getParameter( "username" );
> > if( submitted!=null
> >  && submitted.equals( "Submit Question" )
> >  && questiontext!=null
> >  && !questiontext.equals( "" )
> >  && username!=null
> >  && !username.equals( "" ) ){
> >
> >  edu.tcnj.cs.cmsc446.SQLWorker sqlWorker = new
> > edu.tcnj.cs.cmsc446.SQLWorker();
> >
> >
> >  try{
> >
> >   sqlWorker.setConnection( connectionPool.getConnection() );
> >   sqlWorker.submitQuestion( questiontext, username );
> >   sqlWorker.logQuestionPost( username, "question",
> > request.getRemoteAddr() );
> >
> >  }catch(Exception badQues){
> >   application.log( "faq.jsp: error submitting new question="+badQues );
> >  }finally{
> >   if( connectionPool!=null )
> >    connectionPool.free( sqlWorker.getConnection() );
> >  }
> > }else{
> >  out.println( "<p>No question asked at this time. Enjoy
> > browsing.</p>" );
> > }
> > %>
> >
> > <!-- more html -->
> > <%
> >  edu.tcnj.cs.cmsc446.SQLWorker sqlWorker = new
> > edu.tcnj.cs.cmsc446.SQLWorker();
> > try{
> >
> >  sqlWorker.setConnection( connectionPool.getConnection() );
> >  Vector entries = sqlWorker.getQuestions();
> >
> >  if( entries!=null ){
> >   Question ques=null;
> >   for( int i=0;i<entries.size();i++ ){
> >    ques = (Question)entries.elementAt( i );
> >    out.println( "<tr><td width=\"23%\"><font face=\"Arial, Helvetica,
> > sans-serif\" size=\"2\"><a
> >
href=\"answer.jsp?refNum="+ques.getRefNum()+"\">"+ques.getRefNum()+"</a></fo
> > nt></td>" );
> >    out.println( "<td width=\"77%\"><font face=\"Arial, Helvetica,
> > sans-serif\" size=\"2\">"+ques.getQuestion()+"</font></td></tr>" );
> >   }
> >  }else{
> >   out.println( "<tr><td>no entries</td><td>no questions at this
> > time</td></tr>" );
> >  }
> > }catch( Exception e ){
> >  application.log( "faq.jsp: error getting all questions="+e );
> > }finally{
> >  if( connectionPool!=null )
> >   connectionPool.free( sqlWorker.getConnection() );
> > }
> > %>
> >
> > </body>
> > </html>
> >
> > Regards,
> > Michael
> >
> >
> >
> > --
> > To unsubscribe, e-mail:   <mailto:tomcat-user-
> > [EMAIL PROTECTED]>
> > For additional commands, e-mail: <mailto:tomcat-user-
> > [EMAIL PROTECTED]>
> >
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to