Simple statistical device

xiaoxiao2021-03-06  48

Recently learned JSP. After reading the book, after reading some simple counters written online, I started to write one, now share it. It is also possible, for beginners, it should be a nice learning example, which is designed to have some simple questions from JavaBean, connecting to databases, and sessions, but for beginners can deepen the understanding of these concepts. The simple statistical device I made, mainly realizing the anti-refresh, records IP, and the number of statistics IP first design a database first. I have used a simple Access (mainly easy to use), first design two tables in Access: 1. Counter table (including two columns: numbers, counters) --- This table is used to record access to the number of objectives. 2, iptables table (including two columns: number, IP) ---- This table is used to record the IP address of the visitor. Ok, the database is designed, as long as the ODBC is registered on your machine, I can pull it, I'm registering the ODBC data source is good, I will put the program code code: //counterbean.javaPackage YG; Import java.io. *; import java.sql. *;

public class CounterBean extends Object {String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; String sConnStr = "jdbc: odbc: count"; private Connection conn = null; private Statement stmt = null; ResultSet rs = null; // Register Database driver public counterbean () {try {class.forname (sdbdriver);} catch (java.lang.classnotfoundexception e) {system.err.println ("counterbean (): E.getMessage ());}}

// Establish a database connection and define data query Public ResultSet ExecuteQuery (String SQL) {RS = NULL; try {conn = drivermanager.getConnection (sconnstr); stmt = conn.createstatement (); rs = stmt.executeQuery (SQL); Catch (SQLException E) {system.err.println ("ExecuteQuery:" E.GetMessage ());} Return Rs;}

// definition data operations public void executeUpdate (String sql) {stmt = null; rs = null; try {conn = DriverManager.getConnection (sConnStr); stmt = conn.createStatement (); stmt.executeUpdate (sql); stmt.close (); Conn.close ();} catch (sqlexception ex) {system.err.println ("ExecuteUpdate:" ex.getMessage ());}} // Turns off the database public void closestMT () {TRY {STMT. Close ();} catch (sqlexception e) {E.PrintStackTrace ();}}

Public void closeconn () {Try {conn.close ();} catch (sqlexception e) {E.PrintStackTrace ();}} // Synchronization Update Counter public synchronized int getCount () {int count = 0; rs = null; Try {ExecuteUpdate ("Update Counter Set Counter = Counter 1); RS = ExecuteQuery; rs.next (); count = rs.Getint (" counter "); stmt.close () Conn.close ();} catch (SQLEXCEPTION E) {} Return Count;}} // counter = "@ Page ContentType = Text / HTML; Charset = GB2312"%> <% @ Page Import = "YG .Counterbean "%> <% @ page import =" java.io. * "%> <% @ page import =" java.sql. * "%> counter demos </ title> </ head> <body> <! - creation And call bean (counter) -> <jsp: usebean id = "counter" class = "yg.counterbean" scope = "request"> </ jsp: usebean> <% string cont = new string (); string ips = New string (); int @ = 0; rs = null; if (session.isnew ()) {Cont = String.Valueof (counter.getcount ()); session.putValue Count ", Cont); IPS = Request.getRemoteAddr (); RS = Counter.executeQuery (" SELECT IP from iptables where ip = '" IPS "' "; if (! rs.next ()) counter.executeUpdate "INSERT INTO IPTABLES (IP) VALUES ('" IPS ")");}} RS = Counter.executeQuery ("SELECT IP from iptables"); while (rs.next ()) {ipnum = ipnum 1;} Counter.closestmt (); counter.closeconn ();</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-82561.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="82561" 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.038</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 = 'ryqCdjP74YdgZVZDU5jsU4Dt6lee4lNER32N3_2BD0LP3bkNmctwe8s0TZgyo0LoaqIVFjtbq5wfE_2BqO6P'; 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>