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

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

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

    posts - 78,  comments - 48,  trackbacks - 0

    1. 環(huán)境說明

      安裝Eclipse和安裝MyEclipse組件的過程在這里不進(jìn)行介紹。可以參考其它資料完成Eclipse環(huán)境的安裝與資源的配置。

      接下來的篇幅將給出一個在MyEclipse開發(fā)環(huán)境下的一個Web工程實(shí)例。說明在MyEclipse的集成開發(fā)環(huán)境下,如何利用Struts進(jìn)行Web工程開發(fā)。

    例子工程的環(huán)境:

    Windows 2000 Professional或者更高的版本。
    J2SDK 5.0
    Apache Tomcat 5.0
    MySQL 4.0.14b
    Eclipse-SDK-3.1
    MyEclipse 4.0
    SQLyog407(可選)

    2. 例子工程說明

      本例子是利用struts架構(gòu),實(shí)現(xiàn)用戶logon的Web工程。在這個工程中,用戶可以訪問三個頁面,index.jsp、logon.jsp、menu.jsp。他們的關(guān)系如下圖所示:

      其中,左上角的方框代表struts結(jié)構(gòu)中/WEB-INF/struts-config.xml中定義的,<global-forwards>,也就是在整個Web工程中,只要有l(wèi)ogon的動作發(fā)生,都會使畫面轉(zhuǎn)移到logon.jsp。那么處理logon.jsp畫面的formbeen是上圖上放右側(cè)的模塊表示的formbean來完成——logonForm。

      LogonFrom處理后會有兩個結(jié)果,“success”的時候,畫面會轉(zhuǎn)移到menu.jsp,失敗的話,回到logon畫面。

      在logon畫面,用戶需要輸入用戶名和密碼,點(diǎn)擊submit,進(jìn)行登錄認(rèn)證。輸入內(nèi)容的檢測是在logonForm的bean中檢查。判斷操作在logonAction的bean中完成,在logonAction的bean中,需要訪問MySql數(shù)據(jù)庫的Account表格,進(jìn)行用戶和密碼的查詢。查詢成功的話,證明用戶認(rèn)證通過。

    3. 建立工程

    3.1 v創(chuàng)建新的Web Project

      啟動MyEclipse,通過Wizard,建立一個Web工程。如下圖:

      點(diǎn)擊project后,MyEclipse彈出工程的對話框,我們在所羅列的工程中選中MyEclipse下面的J2EE Projects的Web Project。如下圖所示:

      在Wizard的下一頁,必要的輸入信息是Project Name、Context root URL。最后點(diǎn)擊finish,一個空的WebProject就已經(jīng)建立起來了

    3.2 加載Struts

      在新創(chuàng)建的Web Project中加載struts。

      在MyEclipse集成開發(fā)環(huán)境下,已經(jīng)集成了struts開發(fā)的環(huán)境,用戶可以根據(jù)自己的實(shí)際需要,加載struts的環(huán)境。加載過程如下圖:

      右鍵點(diǎn)擊剛剛創(chuàng)建好的工程,點(diǎn)擊MyEclipse屬性,在擴(kuò)展的右鍵菜單里面,選擇Add Struts Capabilities。

      MyEclipse集成環(huán)境就會自動將Struts所需要的目錄結(jié)構(gòu)進(jìn)行創(chuàng)建,并將需要的環(huán)境資源自動引用到相應(yīng)的目錄中去。

      我們還要對自動生成的Struts進(jìn)行修正,首先,修改WEB-INF/web.xml 將<web-app>標(biāo)簽中的屬性刪除。<web-app XXXXXXXXXXXXXXX> -> <web-app>

      其次要添加本工程的標(biāo)簽定義庫,添加<taglib></taglib>

    <taglib>
        <taglib-uri>/WEB-INF/app.tld</taglib-uri>
        <taglib-location>/WEB-INF/app.tld</taglib-location>
      </taglib>
      <taglib>
        <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
        <taglib-location>/WEB-INF/struts-bean.tld
    </taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld
    </taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> <taglib-location>/WEB-INF/struts-logic.tld
    </taglib-location> </taglib>

    4. 完善工程

    4.1 添加index畫面

      在加載完Struts結(jié)構(gòu)之后,就可以在這個工程中添加內(nèi)容了。我們可以添加一個畫面JSP。添加JSP很簡單,點(diǎn)擊工程的右鍵,添加JSP。Wizard會彈出一個添加的對話框。如下圖:

      在File Name欄中改變文件名稱,改成index.jsp把這個jsp作為Web工程的第一個畫面。

      Template To Use 欄可以選擇第五項(選擇選擇其他項也可以)。

      對于新生成的jsp文件進(jìn)行必要的修改。

    Index.jsp文件:

    <taglib>
    <%@ page language="java" pageEncoding="UTF-8"%>
    
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>My JSP 'index.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="
    keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page">
    <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h3><bean:message key="index.heading"/></h3> <html:link page="/logon.jsp"><bean:message key="index.logon"/></html:link> </body> </html>

     其中藍(lán)色和橙色部分是修改的內(nèi)容,藍(lán)色部分是今后自動添加jsp文件必須修改的地方,讓這個頁面用到的tag都能在這個工程中定義的tag集合中找到。

      橙色部分是畫面的主要顯示內(nèi)容。<h3></h3>的內(nèi)容是一段文本,內(nèi)容被struts結(jié)構(gòu)的靜態(tài)文本集合中的index.heading給替換掉了。這個文本的內(nèi)容可以在工程的src\com\yourcompany\struts\ApplicationResources.properties文件中找到。Struts結(jié)構(gòu)推薦用戶將頁面上的靜態(tài)文本用ApplicationResources的形式替換。這樣可以在大量的維護(hù)頁面文字時候,感到便捷很多,同時,也大大減輕了多國語言版本網(wǎng)頁的維護(hù)。

      <html:link page="/logon.jsp">相當(dāng)于html語言中的<a herf=xxxxx>。這個tag是在/WEB-INF/struts-html.tld中可以找到并在顯示頁面的時候,被轉(zhuǎn)義成<a herf=xxxxx>

    4.2 添加logon畫面

      添加方法跟添加index畫面相同。修改內(nèi)容稍微有些差別。

    Logon.jsp的內(nèi)容:

    <taglib>
    <%@ page language="java" pageEncoding="UTF-8"%>
    
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html:html locale="true">
      <head>
        <html:base />
        
        <title>logon.jsp</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" 
    content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <html:form action="/logon.do" method="post" focus="userName"> <table border="0"> <tr> <td><bean:message key="prompt.username"/></td> <td><html:text property="userName" /></td> </tr> <tr> <td>Password:</td> <td><html:password property="password" /></td> </tr> <tr> <td colspan="2" align="center"><html:submit /></td> </tr> </table> </html:form> </body> </html:html>

      其中,藍(lán)色部分是引用本工程的tag標(biāo)示庫,紅色的部分是表單屬性名稱的修改,和指定action動作的名稱。

    4.3 修改WEB-INF/struts-config.xml

      畫面上出現(xiàn)了form,那么根據(jù)struts的結(jié)構(gòu)要求,就必須在WEB-INF/struts-config.xml中明確這個form的formbean(表單內(nèi)容校驗的java class)是什么。執(zhí)行這個form的action(表單執(zhí)行的內(nèi)部邏輯)是什么,以及action的結(jié)果會產(chǎn)生怎樣的畫面遷移。這些都是在WEB-INF/struts-config.xml中定義的。也就是標(biāo)準(zhǔn)的MVC架構(gòu)所要求的。

    <taglib>
    <struts-config>
      <form-beans >
        <form-bean name="logonForm" type="com.yourcompany.forms.
    LogonForm" /> </form-beans>
    <global-forwards > <forward name="logon" path="/logon.jsp" /> </global-forwards> <action-mappings > <action path="/logon" type="com.yourcompany.actions.LogonAction" name="logonForm" scope="request" input="/logon.jsp"> <forward name="success" path="/menu.jsp" /> <forward name="fails" path="/logon.jsp" /> </action> </action-mappings> <message-resources parameter="com.yourcompany.struts.
    ApplicationResources" /> </struts-config>

      其中<action>部分是說明action的屬性。

      Path 指定Action處理的URL

      Type 指定Action的類名

      Name 指定Action主力的ActionForm名,與<form-beans >元素的name屬性匹配。

      Scope 指定ActionForm存在的范圍

      Input 指定包含客戶提交表單的網(wǎng)頁,如果ActionForm的Validate方法返回錯誤,則因該把用戶請求轉(zhuǎn)發(fā)到這個網(wǎng)頁。

      Validate 如果取值為true,則表示ActionServlet應(yīng)該調(diào)用ActionForm的validate方法

      Forward 就是Action的execute方法執(zhí)行完畢后,把客戶請求在轉(zhuǎn)發(fā)給相應(yīng)的頁面。

    4.4 添加formbean和actionbean

      添加方法跟JSP相同,但是在選擇superclass的時候,formbean要選擇ActionForm作為類的父類。Actionbean的父類是Action

      下面是各自的代碼

    LogonForm.java文件內(nèi)容:

    <taglib>
    package com.yourcompany.forms;
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    
    public class LogonForm extends ActionForm {
    
    	private static final long serialVersionUID 
    = 7322786881443789688L; // ------------------------------
    --------------------------- Instance Variables private String username = null; private String password = null; // -------------------------
    -------------------------------- Methods public String getUserName() { return (this.username); } public void setUserName(String username) { this.username = username; } public String getPassword() { return (this.password); } public void setPassword(String password) { this.password = password; } public void reset(ActionMapping mapping,
    HttpServletRequest request) { this.password = null; this.username = null; } } LogonAction.java文件: package com.yourcompany.actions; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.yourcompany.forms.LogonForm; public class LogonAction extends Action { public ActionForward execute(ActionMapping
    mapping, ActionForm form, HttpServletRequest request,
    HttpServletResponse response) { String userName = null; String password = null; if (form != null) { userName = ((LogonForm) form).getUserName(); password = ((LogonForm) form).getPassword(); } if(userName.equals(“test1”) && password.
    equals(“test1”)){ return (mapping.findForward("success")); } else{ return (mapping.findForward("fails")); } } }

    4.5 添加menu畫面

      與添加index畫面的方法相同。下面是menu.jsp文件的內(nèi)容

    <taglib>
    <%@ page language="java" pageEncoding="UTF-8"%>
    
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html:html locale="true">
      <head>
        <html:base />
            <title>menu.jsp</title>
            <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
      </head>
        <body>
    	  <h3><bean:message key="menu.message"/></h3>
      </body>
    </html:html>

    原帖出處

    http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=27383&messageID=162564#162564

    注:論壇集粹是從dev2dev論壇摘錄廣大站友的原創(chuàng)、提問以及各種解答整理而來,如果您認(rèn)為本文的內(nèi)容已觸犯了您的權(quán)益,請聯(lián)系版主進(jìn)行修改。

    5. 調(diào)試工程

    如果本地機(jī)器已經(jīng)安裝了Tomcat5,那么可以在MyEclilpse的環(huán)境下調(diào)試工程了。

    指定Tomcat5 的web application service 如下圖:

    將Enable選項打開,并且指定Tomcat的安裝目錄。

    配置目前的工程到Tomcat中去。

    點(diǎn)選工具欄上的被紅線圈出的按鈕

    在彈出來的對話框中選擇,我們創(chuàng)建的工程,和添加Tomcat5 的web application service

    然后就可以按下工具欄上的啟動服務(wù)按鈕,調(diào)試這個Web工程了。

    每一次改動工程中的文件后,要想看看改動后的效果,那么就在配置工程中,重新發(fā)布這個工程到tomecat5去。

    6. Tomcat下如何配置mysql的數(shù)據(jù)庫連接池

    6.1 配置server.xml

    配置Tomcat的server.xml文件,路徑:【TOMCAT_HOME】\common\lib下的server.xml文件在</host>之前加入以下內(nèi)容以添加JNDI數(shù)據(jù)源:

    <taglib>
    <Context path="/DBTest" docBase="DBTest"
            debug="5" reloadable="true" crossContext="true">
      <Logger className="org.apache.catalina.logger.FileLogger"
                 prefix="localhost_DBTest_log." suffix=".txt"
                 timestamp="true"/>
      <Resource name="jdbc/TestDB"
                   auth="Container"
                   type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/TestDB">
        <parameter>
          <name>factory</name>
        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <!-- 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.
             -->
        <parameter>
          <name>maxActive</name>
          <value>100</value>
        </parameter>
        <!-- Maximum number of idle dB connections to retain in pool.
             Set to 0 for no limit.
             -->
        <parameter>
          <name>maxIdle</name>
          <value>30</value>
        </parameter>
        <!-- Maximum time to wait for a dB connection to become available
             in ms, in this example 10 seconds. An Exception is thrown if
             this timeout is exceeded.  Set to -1 to wait indefinitely.
             -->
        <parameter>
          <name>maxWait</name>
          <value>10000</value>
        </parameter>
        <!-- MySQL dB username and password for dB connections  -->
        <parameter>
         <name>username</name>
         <value>root</value>
        </parameter>
        <parameter>
         <name>password</name>
         <value> </value>
        </parameter>
        <!-- Class name for mm.mysql JDBC driver -->
        <parameter>
           <name>driverClassName</name>
           <value>org.gjt.mm.mysql.Driver</value>
        </parameter>
        <!-- The JDBC connection url for connecting to your MySQL dB.
             The autoReconnect=true argument to the url makes sure that the
             mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
             connection.  mysqld by default closes idle connections after 8 hours.
             -->
        <parameter>
          <name>url</name> <value>jdbc:mysql://192.168.0.208:3306
    /db_test_account?autoReconnect=true</value> </parameter> </ResourceParams> </Context>

    注意:

    *其中藍(lán)色字體表示你這個應(yīng)用的路徑和別名,也就是你訪問自己配置的這個web站點(diǎn)的名字,注意區(qū)分大小寫,必須一致,否則系統(tǒng)無法正常運(yùn)行(例:http://localhost:8080/DBTest)

    *其中紅色字體表示數(shù)據(jù)源的名字,注意將會被web.xml和你訪問數(shù)據(jù)庫的程序調(diào)用

    6.2 配置web.xml

    配置Web用程序的web.xml文件

    <taglib>
    <?xml version="1.0" encoding="ISO-8859-1"?>
        <!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
      <description>MySQL Test App</description>
      <resource-ref>
          <description>DB Connection</description>
          <res-ref-name>jdbc/TestDB</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    </web-app>
    

    6.3 訪問數(shù)據(jù)庫的程序片段

    <taglib>
    package swt.db.DBUtility;
    
    import javax.naming.*; 
    import javax.sql.*; 
    import java.sql.*; 
    
    public class DBTest { 
    
      String foo = "Not Connected"; 
      int bar = -1; 
         
      public void init() { 
        try{ 
          Context ctx = new InitialContext(); 
          if(ctx == null )  
              throw new Exception("Boom - No Context"); 
          DataSource ds =  
                (DataSource)ctx.lookup( 
                   "java:comp/env/jdbc/TestDB"); 
          if (ds != null) { 
            Connection conn = ds.getConnection();      
            if(conn != null)  { 
                foo = "Got Connection "+conn.toString(); 
                Statement stmt = conn.createStatement(); 
                ResultSet rst =  
                    stmt.executeQuery( 
                      " select UserName from t_account "); 
                if(rst.next()) { 
                   foo=rst.getString(1); 
                   bar=208; 
                } 
                conn.close(); 
            } 
          } 
        }catch(Exception e) { 
          e.printStackTrace(); 
        } 
     } 
     public String getFoo() { return foo; } 
     public int getBar() { return bar;} 
    }

    6.4 Jsp頁面(index.jsp)

    <taglib>
    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ page import ="swt.db.DBUtility.*" %>
    <html> 
      <head> 
        <title>DB Test</title> 
      </head> 
      <body> 
      <% 
        DBTest tst = new DBTest();
        tst.init(); 
      %> 
      <h2>Results</h2> 
        Foo <%= tst.getFoo() %><br> 
        Bar <%= tst.getBar() %> 
      </body> 
    </html>

    啟動Tomcat在瀏覽器上輸入http://localhost:8080/DBTest

    備注:

    連接池配置(Database Connection Pool (DBCP) Configurations)
    DBCP使用的是Jakarta-Commons Database Connection Pool 要使用連接池需要如下的組件即jar文件

    Jakarta-Commons DBCP 1.1 對應(yīng)commons-dbcp-1.1.jar。
    Jakarta-Commons Collections 2.0 對應(yīng)commons-collections.jar。
    Jakarta-Commons Pool 1.1 對應(yīng)commons-pool-1.1.jar。
    這三個jar文件要與你的JDBC驅(qū)動程序一起放到【TOMCAT_HOME】\common\lib目錄下以便讓tomcat和你的web應(yīng)用都能夠找到。

    7. Tomcat5.0下配置Hibernate3.0應(yīng)用

    7.1 在Tomcat下建立數(shù)據(jù)庫連接池,如6中所示

    7.2 在Struts應(yīng)用中添加Hibernate3.0支持

    注意:hibernate.cfg.xml文件一定要存放到跟目錄下,默認(rèn)的也就是/web應(yīng)用/src,這個部署這個應(yīng)用的時候hibernate.cfg.xml才會出現(xiàn)在classes目錄下,也就是hibernate存放配置文件的默認(rèn)錄入下.

    由于我們采用Tomcat提供的數(shù)據(jù)庫連接池,所以這里我們將是用自己創(chuàng)建的SessionFactory類。點(diǎn)擊完成MyEclipse會自動把Hibernate所需的的類庫加入到當(dāng)前應(yīng)用中。接下來就是配置Hibernate連接數(shù)據(jù)庫的所需的參數(shù),以及性能參數(shù)(可選)。

    既然我們選用應(yīng)用服務(wù)器所提供的數(shù)據(jù)庫連接池,那么在這里我們只須要指定數(shù)據(jù)源的名字:java:comp/env/jdbc/TestDB,其中jdbc/TestDB就是我們在Tomcat中配置的數(shù)據(jù)源,也就是我們上面提到的jdbc/TestDB,資源名稱一定要匹配。其他的參數(shù)由于已經(jīng)在Tomcat中配置過了,所以在這里就不用配置了,Dialect一定要指定跟我們數(shù)據(jù)庫匹配的語言。 既然我們選用應(yīng)用服務(wù)器所提供的數(shù)據(jù)庫連接池,那么在這里我們只須要指定數(shù)據(jù)源的名字:java:comp/env/jdbc/TestDB,其中jdbc/TestDB就是我們在Tomcat中配置的數(shù)據(jù)源,也就是我們上面提到的jdbc/TestDB,資源名稱一定要匹配。其他的參數(shù)由于已經(jīng)在Tomcat中配置過了,所以在這里就不用配置了,Dialect一定要指定跟我們數(shù)據(jù)庫匹配的語言。

    我們可以在這里配置Hibernate一些調(diào)整性能的參數(shù)(針對不同的數(shù)據(jù)庫有些屬性可能無效)。

    在這里我們設(shè)置show_sql為true,這樣在開發(fā)調(diào)試過程成控制臺可以打印真正在數(shù)據(jù)庫端執(zhí)行的sql語句便于查找問題。其他一些屬性可以參閱http://www.hibernate.org
    到這里Hibernate的配置已經(jīng)基本完成,下面創(chuàng)建SessionFactory用來和數(shù)據(jù)庫進(jìn)行交互(Hibernate官方文檔提供)。

    package com.db;
    
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateUtil {
    
        private static Log log = 
    LogFactory.getLog(HibernateUtil.class); private static final SessionFactory sessionFactory; static { try { sessionFactory = new Configuration().configure().
    buildSessionFactory(); } catch (Throwable ex) { log.error("Initial SessionFactory
    creation failed.", ex); throw new ExceptionInInitializerError(ex); } } public static final ThreadLocal session = new ThreadLocal(); public static Session currentSession() { Session s = (Session) session.get(); if (s == null) { s = sessionFactory.openSession(); session.set(s); } return s; } public static void closeSession() { Session s = (Session) session.get(); if (s != null) s.close(); session.set(null); } }

    后面將會提到如何使用HibernateUtil,下面建立我們所需的數(shù)據(jù)庫
    (略)我們可以使用208上的db_test_account這個數(shù)據(jù)庫中的表message來測試我們的Hibernate配置是否成功。數(shù)據(jù)庫樣例:

    建表語句:

    CREATE TABLE `message` (              
               `Id` varchar(50) NOT NULL default '0',   
               `text` varchar(50) default NULL,    
               `nextMessage` int(4) default NULL,  
               PRIMARY KEY  (`Id`)                 
              ) TYPE=MyISAM
    

    創(chuàng)建O/R Mapping:

    點(diǎn)擊Edit

    點(diǎn)擊New添加MySQL的驅(qū)動,保存

    激活Database Explorer,保存。

    選擇Database Explorer,創(chuàng)建數(shù)據(jù)庫鏈接:

    點(diǎn)擊創(chuàng)建新的數(shù)據(jù)庫,添加所需必要的參數(shù)

    保存,然后右鍵點(diǎn)擊該數(shù)據(jù)庫選擇open database,測試是否配置成功,如果不能連接查看該連接的配置參數(shù)。

    點(diǎn)擊完成后MyEclipse會自動生成POJO和Map文件,并更新Hibernate的配置文件(主要是加載Map文件)。ID Generator選項可以根據(jù)你的需要進(jìn)行選擇,具體含義請參閱hibernate官方文檔。下面建立一個測試用的jsp頁面來看看Hibernate是否好用。
    //MyJsp.jsp

    <%@ page language="java" import="com.db.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+":
    //"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'MyJsp.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="
    keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% org.hibernate.Session s = HibernateUtil.currentSession(); String hql = " from Message where text='b'"; try { org.hibernate.Query query = s.createQuery(hql); java.util.List msgList = query.list(); hello.Message msg = (hello.Message) msgList.get(0); out.println(msg.getId()); out.println(msg.getText()); out.println(msg.getNextmessage()); } catch (org.hibernate.HibernateException e) { e.printStackTrace(); } HibernateUtil.closeSession(); %> </body> </html>

    正常的結(jié)果如下:

    原帖出處

    http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=27383&messageID=162564#162564

    注:論壇集粹是從dev2dev論壇摘錄廣大站友的原創(chuàng)、提問以及各種解答整理而來,如果您認(rèn)為本文的內(nèi)容已觸犯了您的權(quán)益,請聯(lián)系版主進(jìn)行修改。

    posted on 2006-02-09 11:42 黑咖啡 閱讀(1667) 評論(5)  編輯  收藏 所屬分類: Hibernate

    FeedBack:
    # re: 從零開始創(chuàng)建基于struts1.2 + Hibernate3.0 Web工程
    2006-07-26 10:52 | 消息
    hello.Message 是什么意思?  回復(fù)  更多評論
      
    # re: 從零開始創(chuàng)建基于struts1.2 + Hibernate3.0 Web工程
    2006-07-26 10:52 | 消息
    hello.Message 是什么意思?  回復(fù)  更多評論
      
    # re: 從零開始創(chuàng)建基于struts1.2 + Hibernate3.0 Web工程
    2007-05-16 06:27 | huaprom
    !! 已經(jīng)都配置完畢,可以通過數(shù)據(jù)源讀取數(shù)據(jù)庫得數(shù)據(jù)(已經(jīng)用JSP測試)
    1:環(huán)境為myeclipse5.1+tomcat6+hibernate3+struts1.2+sqlserver2000
    2: hello.Message ,前得hello改為 Message類的包名。
    3:提示 org.hibernate.Session s = HibernateUtil.currentSession();可能有錯誤。

    請XDJM們幫忙指正錯誤!
    謝謝!

    2007-5-16 6:15
    org.apache.catalina.core.StandardWrapperValve invoke
    嚴(yán)重: Servlet.service() for servlet jsp threw exception
    org.apache.jasper.JasperException: Unable to compile class for JSP:

    An error occurred at line: 29 in the jsp file: /testHibernate.jsp
    org.hibernate.Session cannot be resolved to a type
    26:
    27: <body>
    28: <%
    29: org.hibernate.Session s = HibernateUtil.currentSession();
    30: String hql = " from Message where text='b'";
    31: try {
    32: org.hibernate.Query query = s.createQuery(hql);


    An error occurred at line: 29 in the jsp file: /testHibernate.jsp
    The type org.hibernate.Session cannot be resolved. It is indirectly referenced from required .class files
    26:
    27: <body>
    28: <%
    29: org.hibernate.Session s = HibernateUtil.currentSession();
    30: String hql = " from Message where text='b'";
    31: try {
    32: org.hibernate.Query query = s.createQuery(hql);


    Stacktrace:
    at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Thread.java:595)
      回復(fù)  更多評論
      
    # re: 從零開始創(chuàng)建基于struts1.2 + Hibernate3.0 Web工程
    2007-05-16 06:29 | huaprom
    @huaprom

    補(bǔ)充: 沒有添加hibernate3,可以正常讀取數(shù)據(jù)。
    另外,剛學(xué)Hibernate,有打擾各位啦!  回復(fù)  更多評論
      
    # re: 從零開始創(chuàng)建基于struts1.2 + Hibernate3.0 Web工程
    2008-08-27 15:36 | xeonfeng
    圖片不能顯示,很失敗啊。。。。  回復(fù)  更多評論
      

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿(2)

    隨筆分類(67)

    文章分類(43)

    Good Article

    Good Blogs

    Open Source

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲色无码专区一区| 免费国产小视频在线观看| 精品久久久久久亚洲| 亚洲视频在线不卡| 精品熟女少妇av免费久久| 久久久久亚洲精品影视| 国产成人精品免费久久久久| 亚洲AV乱码久久精品蜜桃| 亚洲国产成人精品女人久久久 | 中文字幕亚洲免费无线观看日本| 免费真实播放国产乱子伦| 尤物视频在线免费观看| jlzzjlzz亚洲乱熟在线播放| 国产一精品一av一免费爽爽| 亚洲一卡2卡4卡5卡6卡残暴在线| 成人免费视频88| 黄色免费在线网址| 亚洲欧洲美洲无码精品VA| 美女视频黄的全免费视频网站| 久久亚洲精品国产亚洲老地址| 亚洲无线一二三四区手机| 国产免费av片在线无码免费看| 成人性生免费视频| 国产一精品一AV一免费孕妇| 性生大片视频免费观看一级| 国产成人综合亚洲| 亚洲AV人无码综合在线观看| 国产亚洲精久久久久久无码| 亚洲热妇无码AV在线播放| 亚洲国产精品一区二区久久hs| 伊人亚洲综合青草青草久热| 久久久久国色AV免费观看性色 | 国产精品久久亚洲不卡动漫| 亚洲精品视频免费| 一色屋成人免费精品网站| 成人免费福利视频| aa级女人大片喷水视频免费| 亚洲日本人成中文字幕| 国产精品亚洲综合久久| 国产亚洲精品AAAA片APP| 亚洲国产老鸭窝一区二区三区 |