




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、下午五點(diǎn),終于搞定,高興今天是冬至節(jié),剛?cè)プ隽艘患媸虑椋詩(shī)柿艘话?,我們公司在一座五星寫字樓里面,裝修豪華,廁所的地板是橡膠瓷磚的那種,每次小便器前總有一塊瓷磚上面布滿了“地圖”,打掃衛(wèi)生的人寫了一張紙貼在墻上“大家注意,往前一步,文明一大片”,我剛剛偷偷的換了一張紙,上書“尿不進(jìn)去,說(shuō)明你短”,哈哈開始寫這個(gè)文檔,我是實(shí)習(xí)生,很菜,很多東西不會(huì),這個(gè)東西我配置了一天,剛配好,記錄下來(lái)。首先聲明,我這個(gè)事針對(duì)J2EE程序員的,不是針對(duì)Flex的,我的初衷就是在J2EE里加入Flex支持。有人說(shuō)用flex沒(méi)必要用Struts,但是,我說(shuō)用上最好,因?yàn)槟悴皇敲總€(gè)頁(yè)面都用flex處理,很多很復(fù)雜
2、的流程flex投入巨大,所以還是普通jsp搞定最好。所以加上一層action不會(huì)影響太多性能的。嘿嘿。這個(gè)文檔是建立在你已經(jīng)學(xué)習(xí)了三大框架的而且已經(jīng)會(huì)三大框架的整合開發(fā)的基礎(chǔ)上的。要對(duì)整個(gè)流程熟悉,才能自己完成這個(gè)項(xiàng)目。其中有什么問(wèn)題大家可以加我qq:402026752來(lái)討論。也可以給我發(fā)郵件索要工程源文件。在此提醒大家一點(diǎn),flex加入后的S2SH項(xiàng)目不能直接導(dǎo)入,不然會(huì)有很多問(wèn)題,主要是tomcat的webapps下沒(méi)有相關(guān)的配置文件,所以還是按照這個(gè)文檔一步一步來(lái)吧。Flex4的插件安裝方法網(wǎng)上有很多的,必須MyEclipse7.5以上,但是9.0的不要嘗試了。我已經(jīng)試過(guò)了,失敗了。我的
3、配置如下: MyEclipse8.5; Flex4插件版; Tomcat 6.0.26; BlazeDS 4.0;1, newàweb project,命名為flextest,這個(gè)我想不用截圖吧2 加入S2SH三大框架的jar包,也可以使用MyEclipse導(dǎo)入,配置各個(gè)配置文件。這個(gè)就是三大框架集成過(guò)程,不想多啰嗦。完成后的架構(gòu)圖先上一張:這是我完全做完后的效果圖這個(gè)項(xiàng)目雖然很小很簡(jiǎn)單,但是我采用的是jspàactionàserviceàdaoà數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)工程做法。其中src中的hibernateutil包可以不要,這個(gè)是動(dòng)力節(jié)點(diǎn)老師王勇寫
4、的工具包,主要就是導(dǎo)出Model到數(shù)據(jù)庫(kù)中,整個(gè)例子很簡(jiǎn)單。我將代碼全部貼出來(lái)。到這一步你的工程里還沒(méi)有flex任何東西,但是我的截圖里有,這個(gè)你不用急往下看,你的SSH項(xiàng)目能運(yùn)行起來(lái)才是關(guān)鍵。User.java:package com.xaut.bean;public class User private Integer id;private String username;private String password;public Integer getId() return id;public void setId(Integer id) this.id = id;public Str
5、ing getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() return password;public void setPassword(String password) this.password = password;User.hbm.xml<?xml version="1.0" encoding="utf-8"?><!DOCTYPE h
6、ibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN""<hibernate-mapping> <class name="com.xaut.bean.User"> <id name="id" type="java.lang.Integer"> <generator class="identity" /> </id> <property name
7、="username" type="java.lang.String"/> <property name="password" type="java.lang.String"/> </class></hibernate-mapping>baseDAO.javapackage com.xaut.dao;import java.io.Serializable;import java.util.List;SuppressWarnings("rawtypes")
8、 public interface BaseDAO /* 加載指定ID的持久化對(duì)象 */public Object loadById(Class clazz,Serializable id);baseDAOImpl.javapackage com.xaut.dao;import java.io.Serializable;import java.util.List;import org.hibernate.Hibernate;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernat
9、e.Session;import org.springframework.orm.hibernate3.HibernateCallback;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;SuppressWarnings("rawtypes") public class BaseDAOImpl extends HibernateDaoSupport implements BaseDAO /* 加載指定ID的持久化對(duì)象 */public Object loadById(Class cl
10、azz, Serializable id) return this.getHibernateTemplate().load(clazz, id);/*加載滿足條件的持久化對(duì)象*/public Object loadObject(String hql) final String hql1 = hql;Object obj = null;List list = getHibernateTemplate().executeFind(new HibernateCallback()public Object doInHibernate(Session session) throws HibernateE
11、xceptionQuery query = session.createQuery(hql1);return query.list(););if(list.size()>0)obj=list.get(0);return obj;EportDB.javapackage com.xaut.hibernateutil;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;public class ExportDB public static void main(String a
12、rgs) /默認(rèn)讀取hibernate.cfg.xml文件Configuration cfg = new Configuration().configure();SchemaExport export = new SchemaExport(cfg);export.create(true, true);HibernateUtils.javapackage com.xaut.hibernateutil;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configura
13、tion;public class HibernateUtils private static SessionFactory factory;statictryConfiguration cfg = new Configuration().configure();factory = cfg.buildSessionFactory();catch(Exception e)e.printStackTrace();public static Session getSession()return factory.openSession();public static void closeSession
14、(Session session)if (session != null) if (session.isOpen() /關(guān)閉sessionsession.close();public static SessionFactory getSessionFactory()return factory;UserService.javapackage com.xaut.service;import com.xaut.bean.User;public interface UserService public User userlogin(String username,String password);U
15、serServiceImpl.javapackage com.xaut.service;import com.xaut.bean.User;import com.xaut.dao.BaseDAO;public class UserServiceImpl implements UserService/* 通過(guò)依賴注入DAO組件實(shí)例 */BaseDAO baseDAO; public BaseDAO getBaseDAO() return baseDAO;public void setBaseDAO(BaseDAO baseDAO) this.baseDAO = baseDAO;public Us
16、er userlogin(String username,String password)String hql="from User as a where a.username='"+username+"' and a.password='"+password+"'"return (User)baseDAO.loadObject(hql);UserAction.javapackage com.xaut.web.action;import java.io.IOException;import javax.
17、servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.xaut.bean.User;import com.xaut.service.UserService;public class UserAction extends ActionSupport implements ModelDriven&l
18、t;User> private UserService userService;private User user=new User();public User getModel() / TODO Auto-generated method stubreturn user; public String login() throws IOExceptionHttpServletResponse response = ServletActionContext.getResponse();User tempUser = userService.userlogin(user.getUsernam
19、e(), user.getPassword();if(tempUser!=null)response.getWriter().write("success"); else response.getWriter().write("index"); return null;public UserService getUserService() return userService;public void setUserService(UserService userService) this.userService = userService;public
20、User getUser() return user;public void setUser(User user) this.user = user;到這一步要說(shuō)明一下,login()不能像傳統(tǒng)Action那樣寫一個(gè)return語(yǔ)句就了事。必須采用我這種方法,要不然flex獲得的將是整個(gè)Action頁(yè)面。這就是和flex結(jié)合時(shí)要注意的地方。Hibernate.cfg.xml<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-/
21、Hibernate/Hibernate Configuration DTD 3.0/EN" "<hibernate-configuration><session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:/localhost:330
22、6/flextest</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">111111</property><property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect</property>
23、<property name="hibernate.show_sql">true</property><property name="hibernate.format_sql">false</property> <mapping resource="com/xaut/bean/User.hbm.xml"/></session-factory></hibernate-configuration>Struts.xml<?xml version=&qu
24、ot;1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/Apache Software Foundation/DTD Struts Configuration 2.1/EN" "/dtds/struts-2.1.dtd"><struts><package name="default" namespace="/" extends="struts-
25、default"><action name="userLogin" class="userAction" method="login"><result name="index">/index.jsp</result><result name="success">/login_success.jsp</result></action></package></struts>applicat
26、ionContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance" xmlns:p="/schema/p"xsi:schemaLocation="http:/
27、/schema/beans /schema/beans/spring-beans-2.0.xsd"><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"/><pr
28、operty name="jdbcUrl" value="jdbc:mysql:/localhost:3306/flextest?useUnicode=true&characterEncoding=utf8"/><property name="user" value="root"/><property name="password" value="111111"/><property name="maxPoolSi
29、ze" value="20"/><property name="minPoolSize" value="2"/><property name="initialPoolSize" value="2"/><property name="maxIdleTime" value="20"/></bean><bean id="sessionFactory" class="
30、;org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
31、<prop key="hibernate.show_sql">true</prop></props></property><property name="mappingResources"><list><value>com/xaut/bean/User.hbm.xml</value></list></property></bean> <bean id="transactionManager" cla
32、ss="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <bean id="transactionInterceptor" class="erceptor.TransactionIntercept
33、or"> <property name="transactionManager" ref="transactionManager"/> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property></bean> <bean class=&qu
34、ot;org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value>UserService</value> </list> </property> <property name="proxyTargetClass"> <value>true</value> </pr
35、operty> <property name="interceptorNames"> <list> <value>transactionInterceptor</value> </list> </property> </bean> <bean id="baseDAO" class="com.xaut.dao.BaseDAOImpl"> <property name="sessionFactory" ref=&
36、quot;sessionFactory"></property> </bean> <bean id="userService" class="com.xaut.service.UserServiceImpl"> <property name="baseDAO" ref="baseDAO"/> </bean> <bean id="userAction" class="com.xaut.web.action.
37、UserAction" scope="prototype"> <property name="userService" ref="userService"/> </bean> </beans>Web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns=" xmlns:xsi="http:/www.w3
38、.org/2001/XMLSchema-instance" xsi:schemaLocation=" <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> &
39、lt;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>
40、</filter-mapping> <display-name>BlazeDS</display-name> <description>BlazeDS Application</description> <!- Http Flex Session attribute and binding listener support -> <listener> <listener-class>flex.messaging.HttpFlexSession</listener-class> </
41、listener> <!- MessageBroker Servlet -> <servlet> <servlet-name>MessageBrokerServlet</servlet-name> <display-name>MessageBrokerServlet</display-name> <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> <init-param> <param-name
42、>services.configuration.file</param-name> <param-value>/WEB-INF/flex/services-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!- begin rds <servlet> <servlet-name>RDSDispatchServlet</servlet-name&g
43、t;<display-name>RDSDispatchServlet</display-name> <servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class><init-param><param-name>useAppserverSecurity</param-name><param-value>true</param-value></init-param> <load-on-startu
44、p>10</load-on-startup> </servlet> <servlet-mapping id="RDS_DISPATCH_MAPPING"> <servlet-name>RDSDispatchServlet</servlet-name> <url-pattern>/CFIDE/main/ide.cfm</url-pattern> </servlet-mapping>end rds -> <servlet-mapping> <servle
45、t-name>MessageBrokerServlet</servlet-name> <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> <!- for
46、WebSphere deployment, please uncomment -> <!- <resource-ref> <description>Flex Messaging WorkManager</description> <res-ref-name>wm/MessagingWorkManager</res-ref-name> <res-type>com.ibm.websphere.asynchbeans.WorkManager</res-type> <res-auth>Conta
47、iner</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> -></web-app>建好工程后建好數(shù)據(jù)庫(kù)就可以運(yùn)行ExportDB.java來(lái)導(dǎo)出表了,很方便。王勇老師很強(qiáng)大,建議大家有時(shí)間多看看他的視頻教程。至此你的j2ee項(xiàng)目應(yīng)該能運(yùn)行了吧。添加flex支持:首先得有BlazeDS,解壓開里面的blazeds.war。打開WEB-INF找到flex和lib文件夾,復(fù)制到項(xiàng)目的WEB-INF文件夾下,有充滿文件選擇yes-to
48、-all.3 在WebRoot下新建一個(gè)文件夾flexpages準(zhǔn)備保存flex文件。到這一步先不要急,將項(xiàng)目部署到tomcat下,并啟動(dòng)tomcat,一定要啟動(dòng),不然下面加入flex時(shí)Myeclipse無(wú)法獲取flex配置文件services-config.xml,導(dǎo)致不能繼續(xù)下去。4 右鍵工程名,選擇“添加/更改項(xiàng)目類型”,選擇“添加Flex項(xiàng)目類型”這一步具體選擇應(yīng)該和圖中保持一致。5,Next:這一步如果你沒(méi)有錯(cuò)誤的話根文件夾就會(huì)自動(dòng)獲取到信息。只需要自己改改就OK了。6:點(diǎn)擊驗(yàn)證配置,F(xiàn)inish后,會(huì)發(fā)現(xiàn)項(xiàng)目上有一個(gè)紅叉,打開Problem視圖:顯示有一個(gè)問(wèn)題,右鍵à重新
49、創(chuàng)建HTML模板;OK;7:新的問(wèn)題來(lái)了,你會(huì)發(fā)現(xiàn)flex源文件和java源文件在一個(gè)文件夾中,這樣是不是很不爽,想要實(shí)現(xiàn)項(xiàng)目有效管理,就應(yīng)該將兩者分開;在項(xiàng)目名上右擊àProperties在下面的主源文件夾,將src改成flex_src;OK!輸出文件夾不用管。8:將src里的mxml文件拖到剛建好的flex_src下。OK基本已經(jīng)成型。9:在web.xml.中添加以下內(nèi)容 <!- Http Flex Session attribute and binding listener support -> <listener> <listener-class
50、>flex.messaging.HttpFlexSession</listener-class> </listener> <!- MessageBroker Servlet -> <servlet> <servlet-name>MessageBrokerServlet</servlet-name> <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> <init-param> <param-nam
51、e>services.configuration.file</param-name> <param-value>/WEB-INF/flex/services-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MessageBrokerServlet</servlet-name> <
52、;url-pattern>/messagebroker/*</url-pattern></servlet-mapping>最終的web.xml如下所示;<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns=" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation=" <wel
53、come-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>struts2</filter-name> <fil
54、ter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!- Http Flex Session attribute and binding listener support -&g
55、t; <listener> <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener> <!- MessageBroker Servlet -> <servlet> <servlet-name>MessageBrokerServlet</servlet-name> <servlet-class>flex.messaging.MessageBrokerServlet</servlet-clas
56、s> <init-param> <param-name>services.configuration.file</param-name> <param-value>/WEB-INF/flex/services-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Message
57、BrokerServlet</servlet-name> <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping> </web-app>9:編寫flextest.mxml;內(nèi)容如下<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx=" layout="absolute"> <mx:Script> <!CDATA import .navigateToURL;import mx.controls.Alert;import mx.rpc.events.ResultEvent; private function loginHandle():void doLogin.send(); private function loginResult(evt
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東引進(jìn)創(chuàng)新創(chuàng)業(yè)團(tuán)隊(duì)合同書
- 投影儀購(gòu)銷合同書
- 中國(guó)公路運(yùn)輸合同
- 型鋼采購(gòu)合同協(xié)議
- 家教老師聘用合同書
- 玻璃幕墻安裝合同
- 商品買賣居間合同
- 美國(guó)工程設(shè)計(jì)服務(wù)合同
- 側(cè)柏買賣合同
- 遼寧輕工職業(yè)學(xué)院《建筑設(shè)備(電)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2023CSCO非小細(xì)胞肺癌診療指南解讀
- 利息理論期末考試模擬測(cè)試試題含參考答案
- 干部選拔任用程序
- 部編人教版五年級(jí)下冊(cè)道德與法治簡(jiǎn)答題歸納總結(jié)
- 2023高二開學(xué)第一課《蛻變》-主題班會(huì)
- 口服降糖藥物分類詳解課件
- 二級(jí)生物安全實(shí)驗(yàn)室設(shè)計(jì)建造與運(yùn)行管理指南
- 圍手術(shù)期疼痛護(hù)理課件
- 外國(guó)新聞傳播史-張昆課件
- 圓圈正義:作為自由前提的信念
- 一次性纖維環(huán)縫合器
評(píng)論
0/150
提交評(píng)論