<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)航:
     
    主站蜘蛛池模板: 黄色a三级免费看| 亚洲毛片基地4455ww| 麻豆69堂免费视频| 国产最新凸凹视频免费| 亚洲精品美女久久久久久久| 毛片免费在线观看网站| 亚洲va久久久久| 永久免费无码网站在线观看| 亚洲啪AV永久无码精品放毛片| 天天看免费高清影视| 色天使色婷婷在线影院亚洲| 国产一区二区三区在线免费| 免费高清A级毛片在线播放| 无码欧精品亚洲日韩一区夜夜嗨 | 免费无遮挡无遮羞在线看| 亚洲成av人片一区二区三区 | 亚洲精品中文字幕乱码影院| 无码国产精品久久一区免费| 亚洲国产午夜精品理论片在线播放| 国产午夜影视大全免费观看| 一级女人18片毛片免费视频| 亚洲成A人片在线观看无码不卡 | 95免费观看体验区视频| 久久精品亚洲AV久久久无码| 国产精品久久免费视频| 精品乱子伦一区二区三区高清免费播放| 亚洲人成无码网站| 在线观看的免费网站无遮挡| 亚洲日韩精品无码专区| 亚洲男人在线无码视频| **毛片免费观看久久精品| 亚洲狠狠色丁香婷婷综合| 中文字幕亚洲电影| 91香蕉成人免费网站| 免费的黄网站男人的天堂| 亚洲av日韩av无码| 国产无遮挡吃胸膜奶免费看视频 | 曰批视频免费30分钟成人| 性色av极品无码专区亚洲| 亚洲AV永久无码精品| 妞干网手机免费视频|