[Struts] Configure the first Struts application

xiaoxiao2021-03-06  72

Http://community.9cbs.net/expert/topic/3517/3517995.xml?temp =.2898371 This is my first Struts application, only for user registration; registered users are deposited in the database. Reference "JSP App Development Detailed" Electronic Industry Press Part I / III

/ ** SQL Server 2000 Tomcat 4.1Struts Jakarta-Struts-1.1editplus * /

// ---- Database script ---- Create Database DBACREATE TABLE TUSER (Uname Varchar (64), Upassword Varchar (64), UAGE INT)

// ---- Tomcat Configuration ----

// ---- ClassPath Settings ---- // Since I use a basic text editor, Struts's JAR file needs to be manually configured to ClassPath.; E: / Struts / Web-INF / CLASSES; E: /struts/web-inf/lib;d:/webset/jdk/lib/dt.jar;d:/webset/jdk/lib/tools.jar;d:/webset/jdk/lib/msbase.jar;d: /Webset/jdk/lib/msqlserver.jar;d:/webset/jdk/lib/msutil.jar;d:/webset/jdk/lib/itextasian.jar;d:/Webset/jdk/lib/jxl.jar; E: /STRUTS/Web-inf/Lib/Struts.jar; E: /STRUTS/Web-inf/lib/commons-beanutils.jar; E: /STRUTS/Web-inf/lib/commons-collections.jar; E : /Struts-Digester.jar; e: /struts/web-inf/lib/commons-fileupload.jar; E: /STRUTS/Web-inf/lib/commons-lang.jar; E: /struts/web-inf/lib/commons-logging.jar; E: /STRUTS/Web-inf/lib/commons-validator.jar

// ---- Struts Configuration ----- E: / Struts / Web-INF / LIB directory 2003-06-29 118, 726 Commons-beanutils.jar2003-06-29 165, 119 Commons-Collectes.jar2003-06-29 109, 096 Commons-Digester.jar2003-06-29 22,379 Commons-fileupload.jar2003-06-29 63,980 Commons-lang.jar2003-06-29 31,605 Commons-logging.jar2003-06-29 46,865 Commons-Validator.jar2003-06-29 498,051 struts.jar [2002-05-03 302, 282 msbase.jar] [2002-05-03 69, 477 mssqlser.jar] [2002-05-03 67, 235 msutil.jar]

E: / struts / web-inf / TLD catalog 2003-06-29 8,868 struts-bean.tld2003-06-29 66,192 struts-html.tld2003-06-29 14,511 struts-logic.tld2003-06-29 64,659 struts- Nested.tld2003-06-29 1,631 struts-template.tld2003-06-29 7,850 struts-tiles.tld // --- Web-inf / web.xml ---- struts blank Application Action org.apache.struts.Action.ActionServlet Application ApplicationResources in ApplicationResources < / param-value> config /web-inf/struts-config.xml < / init-param> debug 2 Detail 2 2 action *. do

Index.html / struts-bean /web-inf/tld/struts-bean.tld / struts-html /web-inf/tld/struts-html.tld / struts-logic /Web-inf/tld/struts-logic.tld / struts-nested < / taglib-uri> /web-inf/tld/struts-nested.tld / struts-tiles /Web-inf/tld/struts-tiles.tld / struts-template /Web-inf/tld/struts-template.tld

// ---- Web-INF / STRUTS-Config.xml ---- // --- Web-inf / applicationResources.properties ---- Index.title = Struts Tutorial

Part II / III / / ---- Class Writing ---- E: / Struts / Web-INF / CLASSES / COM / STRU Directory DBCON.CLASS // Package Basic Database Operation User.class // Basic Getter, setter method Userbean.class // Implement specific business logic (usually the operation of the database), is called UseRaction.class //ActionUserform.class // formy by the Action class

// ---- DBCON.JAVA ---- package com.stru; / ** Basic database operation class * / import java.sql. *; Import java.net. *; Import java.util.StringTokenizer; public Class dbcon {string driverstr = "com.microsoft.jdbc.sqlser.sqlserverdriver"; string dbip = "127.0.0.1"; string dbname = "dba"; string dbuser = "sa"; string dbpwd = "jnxr @) $ "; String errtag =" "; string dburl =" ";

public void setDbIp (String value) {dbIp = value;} public String getDbIp () {return dbIp;} public void setDbName (String value) {dbName = value;} public String getDbName () {return dbName;} public void setDbUser ( String value) {dbuser = value;} public string getdbuser () {return dbuser;} public void setdbpwd (String value) {dbpwd = value;} public string getDbpwd () {return dbpwd;}

public void setErrbz (String value) {errTag = value;} public String getErrbz () {return errTag;} public boolean dbtry () {try {dbUrl = "jdbc: microsoft: sqlserver: //" dbIp ": 1433; DatabaseName = " DBNAME; Class.Forname (driverstr); // Loading Drive Connection CONN = DriverManager.getConnection (DBURL, DBUSER, DBPWD); // Load Database Connection Return True;} Catch (Exception E) {Return False;}}

public String dbTest () {try {dbUrl = "jdbc: microsoft: sqlserver: //" dbIp ": 1433; DatabaseName =" dbName; Class.forName (driverStr); // load drivers Connection conn = DriverManager.getConnection ( DBURL, DBUSER, DBPWD; // Load Database Connection Return "Database Connection OK!";} catCH (Exception E) {Return "error: / n" e.tostring ();}}

public void dbexe (String sqlstr) {Connection conn = null; Statement stmt = null; try {dbUrl = "jdbc: microsoft: sqlserver: //" dbIp ": 1433; DatabaseName =" dbName; Class.forName (driverStr) ; conn = DriverManager.getConnection (dbUrl, dbUser, dbPwd); stmt = conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); stmt.execute (sqlstr); errTag = "ok";} catch (Exception e) {System .out.println (E.TOString ()); system.out.println (SQLSTR); errtag = "error";} finally {try {if (stmt! = null) stmt.close (); if (conn! = NULL) CONN.CLOSE ();} catch (sqlexception ee) {system.out.println (Ee.tostring ());}}} public resultset dbqry (String SQLSTR) {// Data Source Unat CONNECTION CONN = NULL; Statement stmt = null; ResultSet rs = null; try {dbUrl = "jdbc: microsoft: sqlserver: //" dbIp ": 1433; DatabaseName =" dbName; Class.forName (driverStr); conn = DriverManager.getConnection (dbUrl , dbuser, dbpwd; stmt = conn.createstatement (ResultSet.Type_Scroll_Sensitive, ResultSet.concur_updata; rs = stmt.executeQuery (SQLST r); errtag = "ok";} catch (eXception e) {system.out.println (e.tostring ()); system.out.println (sqlstr); errtag = "error";} return}

Public int = NULL; Statement Stmt = NULL; ResultSet RS = NULL; INT NUM = -1; try {dburl = "JDBC: Microsoft: SQLServer: //" DBIP ": 1433; DatabaseName = " dbName; Class.forName (driverStr); conn = DriverManager.getConnection (dbUrl, dbUser, dbPwd); stmt = conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); rs = stmt.executeQuery (sqlstr); if (rs.next ()) {Num = rs.getint (1); errtag = "ok";}} catch (exception e) {system.out.println (e.tostring ()); system.out.println SQLSTR); errtag = "error";} finally {try {if (rs! = null) rs.close (); if (stmt! = null) stmt.close (); if (conn! = null) conn.close ();} Catch (system.out.println (ee.tostring ());}}}}}}}}}}}} // ---- User.java ----

Package com.stru; / ** The most basic getter, setter method * / public class user {public void setname (String Aname) {this.name = aname;} public string getname () {Return this.name;} public void setPassword (String aPassword) {this.password = aPassword;} public String getPassword () {return this.password;} public void setAge (int aAge) {this.age = aAge;} public int getAge () {return this.age }

Public static void main (string [] args) {system.out.println ("current user");}

Private string name; private string password; private int agent;}

Part III / III

// ---- Userbean.java -----

Package com.stru; import java.sql. *; import javax.sql. *; import java.io. *; / ** Implement specific business logic (usually a database operation), is called by Action class; but HttpRequest Non-related * / public class userbean {private dbcon dbcon;

public UserBean () throws Exception {dbcon = new Dbcon ();} public void addUser (User user) throws SQLException {String sql = "insert into Tuser (uname, upassword, uage) values ​​( '" user.getName () "','" user.getpassword () "" user.getage () ")"; dbcon.dbexe (sql);}} // ---- use.java ---- package com.stru; import javax.servlet.http *;. import org.apache.struts.action *;. / ** ACTION * / public class UserAction extends Action {public ActionForward perform (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse Response) {Userform f = (userform) form; try {userbean userbean = new userbean (); userbean.adduser (f.getuser ());} catch (exception e) {E.PrintStackTrace ();} request.setttribute ( "User", F.Getuser ()); // return (Mapping.FindForward ("UserCreated"));}}

// ---- Userform.java ---- package com.stru; import javax.servlet.http.httpservletRequest; import org.apache.struts.Action. *;

/ ** FORM * / public class UserForm extends ActionForm {public void setUserName (String aUserName) {user.setName (aUserName);} public String getUserName () {return user.getName ();} public void setUser (User user) { THISUSER = User;} public user getuser () {return this.user;} / ** reset the form * / public void reset (actionmapping mapping, httpservletRequest request) {this.user = new user ();} / * * check the form * / public ActionErrors validate (ActionMapping mapping, HttpServletRequest request) {ActionErrors errors = new ActionErrors ();.. if (user.getName () == null || user.getName () trim () equals ( " ") || user.getPassword (). Trim (). Equals (")) {Errors.Add ("UserInputError", New Actionerror ("ErrorInput: Name / Password");} Return Errors;} private user user = New user ();} // -------- JSP page Writing ---- 2004-11-15 CREATEUSER.JSP // Enter area 2004-11-15 ViewUser.jsp // Execution Back

// ---- CREATEUSER.JSP ----- <% @ Page ContentType = "text / html; charset = GB2312"%> <% @ Taglib URI = "/ struts-logic" prefix = "logic"%>%> <% @ Taglib Uri = "/ Struts-Bean" prefix = "bean"%> <% @ Taglib URI = "/ struts-html" prefix = "html"%> <bean: message key =" index.title "/> </ title > </ head> <body> <h2> Create a new user </ h2> <html: errors /> <html: form action = "createuser.do" method = "get"> name: <html: Text property = "user.name" /> </br> password: <html: password proteth = "user.password" /> </br> AGE: <HTML: text property = "user.age" /> </br> < HTML: Submit Property = "Submit" /> </ html: form> </ body> </ html: html> // ----- Viewuser.jsp ---- <% @ Page ContentType = "Text / HTML Charset = GB2312 "Import =" com.stru.user "%> <% @ Taglib URI =" / struts-logic "prefix =" logic "%> <% @ Taglib URI =" / Struts-beam AN "prefix =" bean "%> <% @ taglib URI =" / struts-html "prefix =" html "%></p> <p><html: html locale = "true"> <head> <html: base /> <title> <bean: message key = "index.title" /> </ title> </ head> <body> <% user user = (User) Request.getaTribute ("user");%> The user has created the user 7 <br> Name: <% = user.getname ()%> <br> password: <% = User.getPassword ()%> <br> AGE: <% = User.getage ()%> <br> </ body> </ html: html></p> <p>// ---- final test ---- http: // localhost: 8080 / struts / createuser.jsp</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-91428.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="91428" 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.039</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 = '62CP6RqV_2BoGhqnM0WgHiYu8dGOY0m6z_2FRqPvhbxghtFIofuxVT0xurHohezPqYMsDWbfkFBzKZNk1_2F9cZMkUaQ_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>