基於MyEclipse 8.0 GA整合S2SH架構執行個體教程

來源:互聯網
上載者:User

一、實驗素材

1. 開發環境:MyEclipse 8.0 GA(Eclipse3.5.1,JRE1.6.0.10和MyEclipse Enterprise WorkBench8.0)
2. 運行環境:JDK 6 Update 20(JRE1.6.0.13)
3. 開發架構:Struts 2.1.8.1,Spring 2.5,Hibernate 3.2
4. 應用伺服器:tomcat 6.0.26
5. 資料庫伺服器:SQL Server 2005

、準備工作

1. MyEclipse 8.0 GA Download and Install
官方網址:http://www.myeclipseide.com/
最新版本:MyEclipse 8.0 GA
該安裝包整合了 Eclipse3.5.1,JRE1.6.0.10和MyEclipse Enterprise WorkBench8.0的自動安裝包(僅Windows平台)。
安裝目錄為C:\J2EE\MyEclipse。
MyEclipse 8.0 GA破解方法:MyEclipse安裝完之後,解壓補丁到目前使用者目錄下(如當前登入使用者為qxr,就解壓到C:\Documents and Settings\qxr下,破解後有對啟動外掛程式刪除的提示。

2. J2SDK Download and Install
官方網址:http://java.sun.com/
最新版本:JDK 6 Update 20(JRE1.6.0.13)
① MyEclipse 8.0 GA預設內建了一個JRE1.6.0.10, 不過安裝獨立版本對學習更有協助。
② J2SDK(jdk-6u20-windows-i586.exe)安裝目錄為 J2SDK在C:\J2EE\J2SDK,JRE在C:\J2EE\JRE,設定系統變數(我的電腦->屬性->進階->環境變數):
(建立)JAVA_HOME = C:\J2EE\J2SDK
(建立)CLASSPATH = .;C:\J2EE\J2SDK\lib\dt.jar;C:\J2EE\J2SDK\lib\tools.jar(注意:點號不能省略,表示目前的目錄)
編輯PATH的變數值,在後面加上;%JAVA_HOME%\bin(注意:要有分號隔開)
至此,J2SDK安裝完畢,用命令簡單測試一下:java –version
③ 在Eclipse中配置JRE:點擊Window->Preferences->Java->Installed JREs,點擊Add按鈕,設定JRE Name為JRE6,設定JRE home directory為C:\J2EE\J2SDK,確認即可。

3. TOMCAT6 Download and Install
官方網址:http://tomcat.apache.org/
最新版本:tomcat 6.0.26
① TOMCAT(apache-tomcat-6.0.26.rar)安裝目錄為C:\J2EE\Tomcat。
② 在Eclipse中配置TOMCAT
點擊Window->Preferences->MyEclipse->Servers->Tomcat->Tomcat 6.x,設定Tomcat server為Enable,路徑分別為C:\J2EE\Tomcat、C:\J2EE\Tomcat、C:\J2EE\Tomcat\temp,應用即可。
點擊Window->Preferences->MyEclipse->Servers->Tomcat->Tomcat 6.x->JDK,在Tomcat JDK name下拉框中選擇J2SDK,應用即可。

4. Struts2 Download
官方網址:http://struts.apache.org/
最新版本:struts 2.1.8.1

5. SQL Server2005 JDBC Driver Download and Install
① 下載驅動程式
http://download.microsoft.com,搜尋Microsoft SQL Server JDBC Driver 3.0,並下載,下載的檔案名稱為sqljdbc_3.0.1301.101_chs.exe(版本號碼1.1之後都支援sql2005,2.0的支援 sql2008)。
下載檔案解壓後就可以使用,不需要要安裝,找到其中的sqljdbc4.jar放入$MYECLIPSEHOME/dropins/jdbc目錄中即可。
② 配置sql2005伺服器。
配置TCP連接埠:開始->程式->Microsoft SQL Server 2005->組態工具->SQL Server Configuration Manager->SQL Server 2005網路設定->MSSQLSERVER協議,啟用TCP/IP。
在SQL Server Configuration Manager->SQL Server 2005 網路設定->MSSQLSERVER協議中雙擊TCP/IP,在IP 位址標籤頁中將所有TCP 通訊埠項設定預設的1433連接埠。
SQL Server Configuration Manager->SQL Server 2005服務中重新啟動SQL Server伺服器,這樣式就完成了對sql2005伺服器的配置。
③ MyEclipse 8.0 GA中的配置
Windows->Open Perspective->MyEclipse DataBase Explorer,在DB Browser中選擇NEW,然後設定如下:
    Driver template = Microsoft SQL Server 2005
    Driver name = SQL Server 2005
    Connection URL = jdbc:sqlserver://localhost:1433;databaseName=SSH
    User name = sa
    Password = PASSWORD
匯入$MYECLIPSEHOME/Common/JDBC中的sqljdbc4.jar,勾選複選框Save password,點擊按鈕Test Driver,測試連接成功。

、搭建架構

1. Create Web Project
啟動MyEclipse,點擊File->New->Other->MyEclipse->Java Enterprise Projects->Web Project,然後點擊Next。
設定Project Name為S2SH,Location Dircetory為E:\J2EE\S2SH,J2EE Specification Level為Java EE 5.0,點擊Finish。
選擇File->New->Package建立如下幾個包:
  com.shawnqiu.action
  com.shawnqiu.bean
  com.shawnqiu.dao
  com.shawnqiu.dao.impl
  com.shawnqiu.service
  com.shawnqiu.service.impl
  com.shawnqiu.util
  dbConfig

2. Add Struts 2.1.8.1 Capabilities
匯入struts2的核心jar包(原始路徑為struts-2.1.8.1-all\struts-2.1.8.1\lib),匯入位置為S2SH\WebRoot\WEB-INF\lib,右鍵點擊工程名稱Refresh即可自動加入。
  commons-fileupload-1.2.1.jar
  commons-logging-1.0.4.jar
  freemarker-2.3.15.jar
  ognl-2.7.3.jar
  struts2-core-2.1.8.1.jar
  struts2-spring-plugin-2.1.8.1.jar
  xwork-core-2.1.6.jar

3. Add Spring 2.5 Capabilities
右鍵點擊工程名稱,MyEclipse->Add Spring Capabilities。
選擇Spring version為Spring 2.5,選中Spring 2.5 AOP Libraries、Spring 2.5 Core Libraries、Spring 2.5 Persistence Core Libraries、Spring 2.5 Persistence JDBC Libraries、Spring 2.5 Web Libraries共5個包。選中Copy checked Library contents to project folder (TLDs always copied),點擊Next。
點擊Next,點擊Folder文字框後的Browse,在彈出對話方塊中選擇spring設定檔儲存位置為WebRoot/WEB-INF,點擊Finish。至此已經完成載入Spring,在WEB-INF檔案夾下已經產生了設定檔applicationContext.xml。

4. Create Database Connection
在SQL Server 2005中建立一個名為SSH的資料庫,在資料庫中建立資料表UserInfo,表中的資料項目如所示,其中UserID為PK、自增。
在MyEclipse中選擇Window->Open Perspective->MyEclipse Database Explorer,進入MyEclipse Database Explorer視圖。
在DB Browser視窗中按右鍵,選擇New。
Connection URL為jdbc:sqlserver://localhost:1433;databaseName=SSH,選中Save password,設定完成後一定要點擊Test 。Driver按鈕測試一下,最後點擊Next,再點擊Finish。

5. Add Hibernate 3.2 Capabilities
右鍵點擊工程名稱,MyEclipse->Add Hibernate Capabilities。
選擇Hibernate Specification為Hibernate 3.2,選中所有包,選中Copy checked Library Jars to project folder and add to build-path,點擊Next。
選擇Spring configuration file (applicationContext.xml),點擊Next。
選擇Existing Spring configuration file,點擊Next
只需在Bean Id文字框中輸入一個Id名,作為資料庫源的代用名,意義不大,採用預設設定即可。然後在DB Driver下拉式清單中,選擇上一步在MyEclipse中建立好的資料庫源SQL Server 2005,其他資訊將自動填寫,點擊Next。
在彈出對話方塊中去掉Create SessionFactory class?複選框,不建立該類,點擊Finish完成。
建立過程中,載入的jar包檔案可能有重複,所以這個時候如果提示有某些jar包重複,選擇Keep Existing即可。

6. Delete Conflictive Jars
右鍵點擊工程名稱,選擇Properties->Java Build Path,刪除三個重複的jar包:
  asm-2.2.3.jar
  cglib-2.1.3.jar
  xerces-2.6.2.jar

7. Create struts.xml
在src包下建立一個struts.xml檔案,該檔案內容如下:

<!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"        "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>    <constant name="struts.objectFactory" value="spring" />    <include file="struts-default.xml"></include>    <package name="default" extends="struts-default">        <action name="userInfoLogin" class="userInfoAction" method="login">            <result name="FAILURE">/MainWeb/failure.jsp </result>            <result name="SUCCESS">/MainWeb/success.jsp</result>        </action>    </package></struts>  

8. Overwrite web.xml
配置web.xml檔案,其內容如下:

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"    xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee       http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">       <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/applicationContext.xml</param-value>    </context-param>       <filter>        <filter-name>struts2</filter-name>        <filter-class>
             org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
       </filter-class>    </filter>    <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>       <welcome-file-list>        <welcome-file>index.jsp</welcome-file>    </welcome-file-list>       <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class>    </listener>   </web-app>  

9. Use Hibernate Reverse
UserInfo.java

UserInfoDaoImpl.java

UserInfo.hbm.xml

將前面資料來源dataSource所示資料庫SSH中的UserInfo表反向產生Hibernate實體類檔案。

如,不要產生abstract class,然後一路點擊Next即可。

在com.shawnqiu.bean下產生三個檔案UserInfo.java、UserInfoDAO.java、 UserInfo.hbm.xml。將UserInfoDAO.java 更名為UserInfoDaoImpl.java,置於com.shawnqiu.dao.impl,將UserInfo.hbm.xml置於 dbConfig下。

10. Create UserInfoServiceImpl.java

package com.shawnqiu.service.impl;   import java.util.*;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.shawnqiu.bean.UserInfo;   public class UserInfoServiceImpl extends HibernateDaoSupport {    //普通使用者登入驗證       @SuppressWarnings("unchecked")    public boolean checkUser(String userName,String userPassword){       boolean flag = false;       String hql = "from UserInfo as userInfo where userInfo.userName = '"
              +userName+"' and userInfo.userPassword = '"+userPassword+"'";       List<UserInfo> userInfoList = this.getHibernateTemplate().find(hql);       if(userInfoList.size()>0){        flag = true;       }       return flag;    }}  

11. Create UserInfoService.java
右鍵點擊UserInfoServiceImpl.java,選擇Refactor->Extract Interface。

設定Interface name為UserInfoService,同時選擇Select All即可,點擊OK。

如所示,UserInfoService.java和UserInfoServiceImpl.java在同一package中。右鍵點擊UserInfoService.java,選擇Refactor->Move

選擇com.shawnqiu.service,點擊OK即可。

12. Create UserInfoAction.java

package com.shawnqiu.action;   import com.opensymphony.xwork2.ActionSupport;import com.shawnqiu.service.UserInfoService;   public class UserInfoAction extends ActionSupport{       private String userName;    private String userPassword;    public UserInfoService getUserInfoService() {        return userInfoService;    }    public void setUserInfoService(UserInfoService userInfoService) {        this.userInfoService = userInfoService;    }       private UserInfoService userInfoService;       public String getUserName() {       return userName;    }    public void setUserName(String userName) {       this.userName = userName;    }        public String getUserPassword() {       return userPassword;    }    public void setUserPassword(String userPassword) {       this.userPassword = userPassword;    }       public String execute(){//     String page = "FAILURE";   //     boolean flag = false;   //     flag = personManage.checkUser(userName, userPassword);   //     if(flag){   //      page = "SUCCESS";   //     }   //     return page;           return "";       }       public String login(){           String page = "FAILURE";           boolean flag = false;           flag = userInfoService.checkUser(userName, userPassword);           if(flag){            page = "SUCCESS";           }           return page;    }   }  

13. New Jsp Pages

首先在WebRoot下建立一個MainWeb檔案夾,並同時建立3個檔案,分別是login.jsp、success.jsp、failure.jsp,原始碼如下。

login.jsp

<%@ page language="java" pageEncoding="utf-8"%><%@taglib uri="/struts-tags" prefix="s"%>   <html><head>   <title>使用者登入</title></head><body><center>   <div id="login">    <s:form action="userInfoLogin">     <s:textfield label="使用者名稱" name="userName"></s:textfield>     <s:password label="密碼" name="userPassword"></s:password>     <s:submit value="登入"></s:submit>    </s:form>   </div></center></body></html>  

success.jsp

<%@ page language="java" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>Failure</title>  </head>  <body>    登入成功!<br>  </body></html>  

failure.jsp

<%@ page language="java" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>Failure</title>  </head>  <body>    登入失敗!<br>  </body></html>  

14. Overwrite applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans    xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:p="http://www.springframework.org/schema/p"    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">       <bean id="dataSource"        class="org.apache.commons.dbcp.BasicDataSource">        <property name="driverClassName"            value="com.microsoft.sqlserver.jdbc.SQLServerDriver">        </property>        <property name="url"            value="jdbc:sqlserver://localhost:1433;databaseName=SSH">        </property>        <property name="username" value="sa"></property>        <property name="password" value="Wxzy!@%&amp;"></property>    </bean>    <bean id="sessionFactory"        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">        <property name="dataSource">            <ref bean="dataSource" />        </property>        <property name="hibernateProperties">            <props>                <prop key="hibernate.dialect">                    org.hibernate.dialect.SQLServerDialect                </prop>            </props>        </property>        <property name="mappingResources">            <list>                <value>dbConfig/UserInfo.hbm.xml</value>               </list>        </property>    </bean>       <bean id="userInfoServiceImpl" class="com.shawnqiu.service.impl.UserInfoServiceImpl" 
      abstract="false" lazy-init="default" autowire="default" 
       dependency-check="default" scope="prototype">       <property name="sessionFactory" >        <ref local="sessionFactory"/>       </property>    </bean>    <bean id="userInfoAction" class="com.shawnqiu.action.UserInfoAction"
     scope="prototype">           <property name="userInfoService">               <ref bean="userInfoServiceImpl" />           </property>    </bean>   </beans>  

15. Create log4j.properties

# Set root category priority to INFO and its only appender to CONSOLE.log4j.rootCategory=INFO, CONSOLE#log4j.rootCategory=INFO, CONSOLE, LOGFILE   # Set the enterprise logger category to FATAL and its only appender to CONSOLE.log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE   # CONSOLE is set to be a ConsoleAppender using a PatternLayout.log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.Threshold=INFOlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=- %m%n   # LOGFILE is set to be a File appender using a PatternLayout.log4j.appender.LOGFILE=org.apache.log4j.FileAppenderlog4j.appender.LOGFILE.File=axis.loglog4j.appender.LOGFILE.Append=truelog4j.appender.LOGFILE.Threshold=INFOlog4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.