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]>
