ssh框架搭建

目录结构:

ssh框架搭建_第1张图片


一、新建web project

二、在src目录下新建struts.xml  ,使用include是为了方便分开各个action


[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://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
[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://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

[html] view plain copy
  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC  
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  4.           "http://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
[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.   
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  7.             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  8.             http://www.springframework.org/schema/context   
  9.             http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  10.             http://www.springframework.org/schema/aop   
  11.             http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
  12.             http://www.springframework.org/schema/tx   
  13.             http://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需要修改
[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="3.0"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://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

[java] view plain copy
  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 id="login" action="/my/admin_login" method="post">    

/my是我的tomcat自己定义的虚拟目录,   admin_* 对应的是admin.xml中 <action name="admin_*" class="adminAction" 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框架模板,已搭建完毕  点击下载

你可能感兴趣的:(ssh框架搭建)