閱讀365 返回首頁    go 技術社區[雲棲]


ssh框架搭建

目錄結構:



一、新建web project

二、在src目錄下新建struts.xml  ,使用include是為了方便分開各個action


  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "https://struts.apache.org/dtds/struts-2.0.dtd">  
  5.   
  6. <struts>  
  7.     <!-- 指定Web應用的默認編碼集,相當於調用HttpServletRequest的setCharacterEncoding方法 -->  
  8.     <constant name="struts.i18n.encoding" value="UTF-8" />  
  9.     <!-- 設置瀏覽器是否緩存靜態內容,默認值為true(生產環境下使用),開發階段最好關閉 -->  
  10.     <constant name="struts.serve.static.browserCache" value="false" />  
  11.     <!-- 當struts的配置文件修改後,係統是否自動重新加載該文件,默認值為false(生產環境下使用),開發階段最好打開 -->  
  12.     <constant name="struts.configuration.xml.reload" value="true" />  
  13.     <!-- 開發模式下使用,這樣可以打印出更詳細的錯誤信息 -->  
  14.     <constant name="struts.devMode" value="true" />  
  15.     <include file="admin.xml" />  
  16.   
  17. </struts>  

還有admin.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "https://struts.apache.org/dtds/struts-2.0.dtd">  
  5.   
  6. <struts>  
  7.     <package name="admin"  extends="struts-default">  
  8.        <action name="admin_*" class="adminAction" method="{1}">  
  9.              <result name="login">          
  10.                /backend/main.jsp   <!-- 頁麵跳轉 -->  
  11.             </result>  
  12.              <result name="delSuc" type="redirectAction">    
  13.                <param name="actionName">admin_login</param> <!-- action跳轉 -->  
  14.             </result>  
  15.               
  16.         </action>  
  17.     </package>  
  18. </struts>  


三、在src目錄增加hibernate.cfg.xml

  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.           "https://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5.   
  6. <!-- Generated by MyEclipse Hibernate Tools.                   -->  
  7. <hibernate-configuration>  
  8.   
  9.     <session-factory>  
  10.         <mapping resource="com/d3/d3studio/model/Admin.hbm.xml" />  
  11.   
  12.     </session-factory>  
  13.   
  14. </hibernate-configuration>  

四、在WEB-INF增加applicationContext.xml
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="https://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:context="https://www.springframework.org/schema/context"  
  4.     xmlns:aop="https://www.springframework.org/schema/aop" xmlns:tx="https://www.springframework.org/schema/tx"  
  5.   
  6.     xsi:schemaLocation="https://www.springframework.org/schema/beans   
  7.             https://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  8.             https://www.springframework.org/schema/context   
  9.             https://www.springframework.org/schema/context/spring-context-3.0.xsd  
  10.             https://www.springframework.org/schema/aop   
  11.             https://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
  12.             https://www.springframework.org/schema/tx   
  13.             https://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
  14.             ">  
  15.   
  16.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
  17.         <!-- 指定連接數據庫的JDBC驅動 -->  
  18.         <property name="driverClass">  
  19.             <value>com.mysql.jdbc.Driver</value>  
  20.          </property>  
  21.         <!-- 連接數據庫所用的URL -->  
  22.         <property name="jdbcUrl">  
  23.             <value>jdbc:mysql://localhost:3306/pacs</value>  
  24.         </property>  
  25.         <!-- 連接數據庫的用戶名 -->  
  26.         <property name="user">  
  27.             <value>root</value>  
  28.         </property>  
  29.         <!-- 連接數據庫的密碼 -->  
  30.         <property name="password">  
  31.             <value>root</value>  
  32.         </property>  
  33.         <!-- 設置數據庫連接池的最大連接數 -->  
  34.         <property name="maxPoolSize">  
  35.             <value>20</value>  
  36.         </property>  
  37.         <!-- 設置數據庫連接池的最小連接數 -->  
  38.         <property name="minPoolSize">  
  39.             <value>2</value>  
  40.         </property>  
  41.         <!-- 設置數據庫連接池的初始化連接數 -->  
  42.         <property name="initialPoolSize">  
  43.             <value>2</value>  
  44.         </property>  
  45.         <!-- 設置數據庫連接池的連接的最大空閑時間,單位為秒 -->  
  46.         <property name="maxIdleTime">  
  47.             <value>20</value>  
  48.         </property>  
  49.     </bean>  
  50.     <bean id="sessionFactory"  
  51.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  52.         <property name="dataSource">  
  53.             <ref bean="dataSource" />  
  54.         </property>  
  55.          <property name="hibernateProperties">     
  56.              <props>     
  57.                  <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>     
  58.                  <prop key="hibernate.show_sql">true</prop>     
  59.                  <prop key="hibernate.fromat_sql">true</prop>   
  60.                  <prop key="hibernate.generate_statistics">true</prop>     
  61.                  <prop key="hibernate.connection.release_mode">auto</prop>     
  62.                  <prop key="hibernate.autoReconnect">true</prop>     
  63.                  <prop key="hibernate.cache.use_query_cache">true</prop>  
  64.                  <prop key="cache.use_second_level_cache">true</prop>  
  65.                  <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>   
  66.                  
  67.              </props>     
  68.          </property>   
  69.         <property name="mappingResources">  
  70.             <list>  
  71.                 <value>com/d3/pacs/model/Admin.hbm.xml</value>         <-- 對應model包裏的映射 -->  
  72.             </list>  
  73.         </property>  
  74.     </bean>  
  75.       
  76.       
  77.     <bean id="txManager"  
  78.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  79.         <property name="dataSource" ref="dataSource" />  
  80.     </bean>  
  81.     <tx:annotation-driven transaction-manager="txManager" />  
  82.     <-- 使用spring的注入  -->  
  83.     <bean id="adminDAO" class="com.d3.pacs.dao.AdminDAO">  
  84.     <property name="sessionFactory" ref="sessionFactory" />  
  85.     </bean>  
  86.     <bean id="adminService" class="com.d3.pacs.service.AdminService">  
  87.         <property name="adminDAO" ref="adminDAO" />  
  88.     </bean>  
  89.     <bean id="adminAction" class="com.d3.pacs.action.AdminAction" scope="prototype">  
  90.         <property name="adminService" ref="adminService" />  
  91.     </bean>  
  92.       
  93. </beans>  

五、web.xml需要修改
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="3.0"   
  3.     xmlns="https://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="https://java.sun.com/xml/ns/javaee   
  6.     https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  
  7.   <display-name></display-name>   
  8.     <!-- 配置struct2-->  
  9.     <filter>  
  10.         <filter-name>struts2</filter-name>  
  11.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  12.     </filter>  
  13.     <filter-mapping>  
  14.         <filter-name>struts2</filter-name>  
  15.         <url-pattern>/*</url-pattern>  
  16.     </filter-mapping>  
  17.   
  18.     <!-- 啟動Spring容器 -->  
  19.     <listener>  
  20.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  21.     </listener>  
  22.     <!-- 默認啟動項 -->  
  23.   <welcome-file-list>  
  24.     <welcome-file>login.jsp</welcome-file>  
  25.   </welcome-file-list>  
  26. </web-app>  


六、編寫action

  1. public class AdminAction extends ActionSupport {  
  2.     private static Logger logger = Logger.getLogger(AdminAction.class);  
  3.     private AdminService adminService;  
  4.     private Admin admin;  
  5.   
  6.     public AdminService getAdminService() {  
  7.         return adminService;  
  8.     }  
  9.   
  10.     public void setAdminService(AdminService adminService) {  
  11.         this.adminService = adminService;  
  12.     }  
  13.   
  14.     public Admin getAdmin() {  
  15.         return admin;  
  16.     }  
  17.   
  18.     public void setAdmin(Admin admin) {  
  19.         this.admin = admin;  
  20.     }  
  21.   
  22.     // 管理員登陸  
  23.     public String login() {  
  24.         if(adminService.login(admin) !=null){  
  25.             HttpServletRequest request = ServletActionContext.getRequest();  
  26.             HttpSession session = request.getSession(true);  
  27.             session.setAttribute("admin1", admin);  
  28.             return "login";  
  29.         }  
  30.         else  
  31.             return "loginFail";  
  32.     }  
  33.   
  34.     // 管理員注冊  
  35.     public String regist() {  
  36.         return "regist";  
  37.     }  
  38.   
  39.     // 退出管理員  
  40.     public String exit() {  
  41.         HttpServletRequest request = ServletActionContext.getRequest();  
  42.         request.getSession().removeAttribute("admin1");  
  43.         return "exit";  
  44.     }  
  45. }  

七、   訪問流程: 在jsp中提交action    提交表單<form action="/my/admin_login" method="post">    

/my是我的tomcat自己定義的虛擬目錄,   admin_* 對應的是admin.xml中 <action name="admin_*" method="{1}">

訪問admin_login  對應的就是action類中的public String login()的方法 ,根據此方法返回的String 

對應的也是admin.xml 中 ,返回login則會跳刀main.jsp

<result name="login">        
               /backend/main.jsp   <!-- 頁麵跳轉 -->
            </result>
             <result name="regist">        
               /backend/main.jsp   <!-- 頁麵跳轉 -->
            </result>
             <result name="delSuc" type="redirectAction">  
               <param name="actionName">admin_login</param> <!-- action跳轉 -->
            </result>

另外,struts會自動匹配類屬性和jsp中name

比如: 

jsp裏麵有  :  <INPUT class=TxtUserNameCssClass maxLength=20 name="name">

對應在action裏麵,如果有name的屬性,隻要提供get,set方法,那麼jsp中的name就會傳到action

另外還可以:    <INPUT class=TxtUserNameCssClass maxLength=20 name="admin.name">

對應action裏麵有個admin的類屬性且 admin有name屬性, 則會賦值




下載地址:  SSH框架模板,已搭建完畢  點擊下載

最後更新:2017-04-03 12:56:16

  上一篇:go 連載:麵向對象葵花寶典:思想、技巧與實踐(26) - 類模型三板斧
  下一篇:go cocos2dx3.0rc如何創建新工程