Configure and use JNDI in Tomcat

xiaoxiao2021-03-06  99

JNDI is a very important standard in J2EE, usually in the EJB programming, Tomcat4.0 provides methods of using JNDI directly in JSP and Servelt, talk about configuring and using JNDI in Tomcat 4.0. Method (with the JNDI connection database as an example) assume that the database is mysql, the experiment example is in the Tomcat_Home / WebApps / dbtest directory

A. Add mysql JDBC connection library mm.mysql-2.0.9-bin.jar into Tomcat_Home / Common / LIB

B. Configure the Tomcat_Home / conf / sere.xml file to join a context: This is the root path of dbtest, which is ready to prepare in dbtest.

C. Add joining

factory org.apache.commons.dbcp.basicDataSourceFactory

<-!.. Maximum number of dB connections in pool Make sure you configure your mysqld max_connections large enough to handle all of your db connections Set to 0 for no limit -.> maxActive 100

maxidle 30

maxWait 10000

username test password < Value> Test driverclassname org.gjt.mm.mysql.driver < / value>

URL jdbc: mysql: // localhost: 3306 / test Every small segment has an English annotation, which is Tomcat, which will be added according to Sample, mainly modified DriverClassName, URL, and user account; need to emphasize "JDBC / TestDB" is JDNI Find Name.

D. Using JSPH or Servlet The following is the code in JSP files about JSP file (file name UserHandLeDb.jsp) Need to pay attention to JNDI Name To add "Java: Comp / ENV /"

<% @ page language = "java"%> <% @ page import = "java.util. *"%> <% @ page import = "java.sql. *"%> <% @ page import = "javax. SQL. * "%> <% @ Page Import =" javax.naming. * "%>

<% String jndi_name = "java: comp / env / jdbc / testdb"; string select_user_sql = "SELECT Userid, Name, Birthday, Email from EMP"; String ColNames [] [] = {{"User ID", "Name" , "Birth day", "email"}, {"userid", "name", "birthday", "email"}}; vector useerSet = new vector (); Vector columnset = new vector ();

For (int i = 0; i

Context ctx = new initialcontext (); if (ctx == null) throw new exception ("no content"); DataSource DS = (Datasource) ctx.lookup (JNDI_NAME);

Connection conn = ds.getConnection ();

try {PreparedStatement psPreparedStatement = conn.prepareStatement (select_user_sql); ResultSet resultSet = psPreparedStatement.executeQuery (); while (resultSet.next ()) {columnSet = new Vector (); for (int i = 0; i

E. Quote UserHandLeDb.jsp test database </ title> <body> <% @ include file = "UserHandledb.jsp"%> <table border = "1 "> <% for (int i = 0; i <userSet.size (); i ) {Vector colset = (vector) UserSet.Get (i); out.print (" <tr> "); for (int J = 0; j <colset.size (); j ) {string col = (string) colset.get (j); out.print ("<TD>" COL "</ td>");} Out.Print ("</ TR>");}%> </ table> </ body> </ html></p> <p>F. Add <Resource-Ref> <Description> DB Connection </ description> <res-ref-name> JDBC / TESTDB <REY> JAVAX.SQL.DataSource </ res-type> <res-auth> container </ res-auth> </ resource-ref> The Name matching of the RESOURCE segment in C in JDBC / TESTDB</p> <p>G. The observation first determines that the database has been started, then start Tomcat, if Tomcat starts an exception, the possible reason is that the database's JDBC library is not loaded</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-97012.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="97012" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.035</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'aZGkSxfpFJ3yedgOzh_2BNtsjjSgrOIddu4VQK6RvKpF5A0CLfFU0O5iQCjZZ96E8YF5YUoz_2F7qSlEfRCXe3vLeQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>