<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    WEB開發(fā) de 點滴

    by sanwish

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      38 隨筆 :: 0 文章 :: 4 評論 :: 0 Trackbacks
    利用struts自帶的數(shù)據(jù)連接池連接數(shù)據(jù)庫
    zhanggok ()???? 2004-03-28 01:44:39 在 Java / 框架、開源 提問
    這是我從網(wǎng)上看到是但有一點不明白??
    ? dataSource=getDataSource(request);??
    ? 這里的request是HttpServletRequest?? request??
    ? 嗎.這樣就以得到數(shù)據(jù)源嗎?不明白??
    ? struts自帶的數(shù)據(jù)連接池在struts-config.xml中可以設(shè)置??
    ? 本人的設(shè)置如下:??
    ? <data-sources>??
    ???
    ? <data-source?? type="org.apache.commons.dbcp.BasicDataSource">??
    ???
    ? <set-property??
    ???
    ? property="description"??
    ???
    ? value="Airline?? DB?? Connection?? config"/>??
    ???
    ? <set-property??
    ???
    ? property="driverClassName"??
    ???
    ? value="com.mysql.jdbc.Driver"/>??
    ???
    ? <set-property??
    ???
    ? property="maxCount"??
    ???
    ? value="10"/>??
    ???
    ? <set-property??
    ???
    ? property="password"??
    ???
    ? value=""/>??
    ???
    ? <set-property??
    ???
    ? property="url"??
    ???
    ? value="jdbc:mysql://localhost/airline"/>??
    ???
    ? <set-property??
    ???
    ? property="username"??
    ???
    ? value="root"/>??
    ???
    ? <set-property????
    ???
    ? property="maxWait"????
    ???
    ? value="5000"?? />??
    ???
    ? <set-property??
    ???
    ? property="defaultAutoCommit"??
    ???
    ? value="false"?? />??
    ???
    ? <set-property??
    ???
    ? property="defaultReadOnly"??
    ???
    ? value="false"?? />??
    ???
    ? </data-source>??
    ???
    ? </data-sources>??
    ???
    ? 這些基本的,我想大家都應(yīng)該看得懂吧??
    ? 然后就是來驗證我們的數(shù)據(jù)庫連接了??
    ? 這里用一個login來測試??
    ? 第一個是LoginForm??
    ? package?? com.airline;??
    ???
    ? import?? javax.servlet.http.HttpServletRequest;??
    ? import?? org.apache.struts.action.ActionError;??
    ? import?? org.apache.struts.action.ActionErrors;??
    ? import?? org.apache.struts.action.ActionForm;??
    ? import?? org.apache.struts.action.ActionMapping;??
    ???
    ? public?? final?? class?? LoginForm?? extends?? ActionForm?? {??
    ? private?? String?? userName;??
    ? private?? String?? password;??
    ???
    ? public?? String?? getUserName()?? {??
    ? return?? userName;??
    ? }??
    ? public?? void?? setUserName(String?? userName)?? {??
    ? this.userName?? =?? userName;??
    ? }??
    ? public?? String?? getPassword()?? {??
    ? return?? password;??
    ? }??
    ? public?? void?? setPassword(String?? password)?? {??
    ? this.password?? =?? password;??
    ? }??
    ? public?? void?? reset(ActionMapping?? mapping,?? HttpServletRequest?? request)?? {??
    ? password?? =?? null;??
    ? userName?? =?? null;??
    ? }??
    ? public?? ActionErrors?? validate(ActionMapping?? mapping,?? HttpServletRequest?? request)?? {??
    ? ActionErrors?? errors?? =?? new?? ActionErrors();??
    ? if?? ((userName==null)?? ||?? (userName.length()?? <?? 1))??
    ? errors.add("userName",?? new?? ActionError("error.missing.userName"));??
    ? if?? ((password==null)?? ||?? (password.length()?? <?? 1))??
    ? errors.add("password",?? new?? ActionError("error.missing.password"));??
    ? return?? errors;??
    ? }??
    ???
    ? }??
    ? 這個java就是給將來我們要提交的數(shù)據(jù)一個容器,就像“裝水的玻璃瓶”一樣,這是一個“瓶子”??
    ? 接下來的就是LoginAction??
    ? package?? com.airline;??
    ???
    ? import?? java.io.IOException;??
    ? import?? javax.servlet.RequestDispatcher;??
    ? import?? javax.servlet.ServletException;??
    ? import?? javax.servlet.http.HttpServletRequest;??
    ? import?? javax.servlet.http.HttpSession;??
    ? import?? javax.servlet.http.HttpServletResponse;??
    ? import?? javax.servlet.http.HttpServlet;??
    ? import?? org.apache.struts.action.Action;??
    ? import?? org.apache.struts.action.ActionForward;??
    ? import?? org.apache.struts.action.ActionForm;??
    ? import?? org.apache.struts.action.ActionMapping;??
    ? import?? org.apache.struts.action.ActionError;??
    ? import?? org.apache.struts.action.ActionErrors;??
    ? import?? java.sql.ResultSet;??
    ? import?? java.sql.Connection;??
    ? import?? java.sql.Statement;??
    ? import?? java.sql.SQLException;??
    ? import?? javax.sql.DataSource;??
    ???
    ???
    ? public?? final?? class?? LoginAction?? extends?? Action?? {??
    ? public?? ActionForward?? execute(ActionMapping?? mapping,??
    ? ActionForm?? form,?? HttpServletRequest?? request,?? HttpServletResponse?? response)??
    ? throws?? IOException,?? ServletException?? {??
    ???
    ? String?? userName?? =?? ((LoginForm)?? form).getUserName();??
    ? String?? password?? =?? ((LoginForm)?? form).getPassword();??
    ? DataSource?? dataSource;??
    ? Connection?? con=null;??
    ? Statement?? stmt;??
    ? ResultSet?? rs;??
    ? String?? usn="",pwd="",result="";??
    ???
    ? try{??
    ? dataSource=getDataSource(request);??
    ? con=dataSource.getConnection();??
    ? stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);??
    ? rs=stmt.executeQuery("select?? *?? from?? login?? where?? username='"+userName+"'");??
    ???
    ? while(rs.next()){??
    ? usn=rs.getString(2);??
    ? pwd=rs.getString(3);??
    ? }??
    ???
    ? }catch(SQLException?? sqle){??
    ? getServlet().log("Connection.process",sqle);??
    ???
    ? }finally{??
    ? try{??
    ? con.close();??
    ? }catch(SQLException?? e){??
    ? getServlet().log("Connection.close",e);??
    ? }??
    ? }??
    ? if?? (userName!=null?? &&?? password!=null?? &&????
    ? password.equals(pwd))?? {??
    ? HttpSession?? session?? =?? request.getSession();??
    ? session.setAttribute("loggedIn",?? "1");??
    ? return?? mapping.findForward("success");??
    ? }??
    ? else?? {??
    ? ActionErrors?? errors?? =?? new?? ActionErrors();??
    ? errors.add(ActionErrors.GLOBAL_ERROR,????
    ? new?? ActionError("error.login.failed"));??
    ? saveErrors(request,?? errors);??
    ? return?? (new?? ActionForward(mapping.getInput()));??
    ? }??
    ? }??
    ? }??
    ? 這個java就是來具體處理我們剛才放在"瓶子"里的東西,它就會連接到MYSQL數(shù)據(jù)庫里去查找相應(yīng)的數(shù)據(jù),然后驗證一下。??
    ???
    ? 接下來,我們就要在struts-config.xml中對剛才的兩個java作一下設(shè)置了??
    ? 首先是在<Action-mapping>中加入如下的代碼??
    ? <action?? path="/login"????
    ? type="com.airline.LoginAction"????
    ? name="loginForm"??
    ? scope="request"??
    ? input="/login.jsp">??
    ? <forward?? name="success"?? path="/mainMenu.jsp"/>??
    ? </action>??
    ? 然后在<form-bean>中加入??
    ? <form-bean?? name="loginForm"?? type="com.airline.LoginForm"/>??
    ? 最后再來做一下jsp頁面??
    ? login.jsp??
    ? <%@?? taglib?? uri="/WEB-INF/struts-html.tld"?? prefix="html"?? %>??
    ? <html:html?? locale="true">??
    ? <head>??
    ? <title>Login?? Page</title>??
    ? <html:base/>??
    ? </head>??
    ? <body>??
    ???
    ? <html:errors/>??
    ???
    ? Please?? enter?? your?? user?? name?? and?? password??
    ? <br>??
    ???
    ? <html:form?? action="/login"?? focus="userName">??
    ? <table>??
    ? <tr>??
    ? <td>User?? Name:</td>??
    ? <td><html:text?? property="userName"/>??
    ? </tr>??
    ? <tr>??
    ? <td>Password:</td>??
    ? <td><html:password?? property="password"?? redisplay="false"/>??
    ? </tr>??
    ? <tr>??
    ? <td?? colspan=2?? align=right><html:submit?? property="submit"?? value="Login"/></td>??
    ? </tr>??
    ? </table>??
    ? </html:form>??
    ???
    ? </body>??
    ? </html:html>??
    ???
    ? mainMenu.jsp??
    ? <%??
    ? if?? (session.getAttribute("loggedIn")==null)?? {??
    ? %>??
    ? <jsp:forward?? page="login.jsp"/>??
    ? <%??
    ? }??
    ? else?? {??
    ? %>????
    ???
    ? <html>??
    ? <head>??
    ? <title>Main?? Menu</title>??
    ? </head>??
    ? <body>??
    ???
    ? <b>Main?? Menu</b>??
    ? <br><a?? href=logout.do>Log?? Out</a>??
    ? <br><a?? href=viewSecret.do>View?? Company?? Secrets</a>??
    ???
    ? </body>??
    ? </html>??
    ???
    ? <%??
    ? }??
    ? %>??
    ???
    ? 在classes下找到application.properties??
    ? 加入如下代碼:??
    ? errors.header=<b>Error(s)!!!</b><ul>??
    ? errors.footer=</ul><hr>??
    ? error.missing.userName=<li>A?? user?? name?? was?? not?? found.</li>??
    ? error.missing.password=<li>A?? password?? was?? not?? found.</li>??
    ? error.login.failed=<li>Incorrect?? user?? name?? and/or?? password.</li>??
    ? 這些是用來顯示出錯信息的。??
    ? 好了,打開Tomcat服務(wù)器,來測試一下吧
    posted on 2008-11-07 11:21 sanwish 閱讀(265) 評論(0)  編輯  收藏 所屬分類: Struts

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 99在线精品视频观看免费| 午夜亚洲av永久无码精品| 亚洲第一区二区快射影院| 亚洲综合无码AV一区二区| 亚洲精品无码你懂的| 婷婷综合缴情亚洲狠狠尤物| a毛片免费播放全部完整| 亚洲毛片免费视频| 免费日韩在线视频| 亚洲国产精品无码久久| 国内精品99亚洲免费高清| 日本免费高清视频| 亚洲精品伦理熟女国产一区二区| 久久亚洲2019中文字幕| 97公开免费视频| 国产成人+综合亚洲+天堂| 国产亚洲欧洲精品| 四虎永久在线精品免费观看地址 | 国产精品亚洲专区无码唯爱网| 青青草原亚洲视频| 最近中文字幕mv免费高清电影 | 日韩精品极品视频在线观看免费| 自拍偷区亚洲国内自拍| 国产亚洲色婷婷久久99精品| aa级一级天堂片免费观看| h片在线观看免费| 亚洲精品国产精品国自产网站| 国产精品V亚洲精品V日韩精品| 无人在线观看免费高清视频| a级毛片毛片免费观看久潮喷| 亚洲日韩国产AV无码无码精品| 亚洲AV无码专区国产乱码电影| 日本不卡视频免费| 精品国产无限资源免费观看| 亚洲一区二区三区免费| 亚洲精品女同中文字幕| 久久精品国产亚洲av麻豆蜜芽| 亚洲国产综合91精品麻豆| 亚洲区日韩区无码区| 在线观看国产情趣免费视频| 四虎精品视频在线永久免费观看|