SSH(1)

SSH:顾名思义(spring,struts2,hirbernate)

    Struts(表示层)+Spring(业务层)+Hibernate(持久层)

Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action) Hibernate: Hibernate是一个持久层框架,它只负责与关系数据库的操作。

Spring: Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。


前提条件:(引入三大框架的jar包)

第一步:搭建分层(以购买股票为案例)

          1.搭建beans层,构建实体类,以及hirbernate的小配置文件(.hbm.xml)

     

     

     2.搭建dao层以及dao的实现

     

     

     3.构建service进行业务的处理以及dao的植入

       

       

第二步:构架配置文件applicationContext.xml(关联hirbernate以及struts的配置)    

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<?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:context="http://www.springframework.org/schema/context"

    xmlns:aop="http://www.springframework.org/schema/aop"

    xmlns:tx="http://www.springframework.org/schema/tx"

     xsi:schemaLocation="

        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd

        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    

    <!-- 配置dao -->

    <bean id="stockdao" class="cn.hq.dao.impl.StockDaoImpl">

        <property name="sessionFactory" ref="sessionFactory"></property>

    </bean>

    

    <!-- 配置service -->

    <bean id="service" class="cn.hq.service.impl.StockServiceImpl">

        <property name="stockDao" ref="stockdao"></property>

    </bean>

    

    <!-- 配置jdbc连接 -->

    <context:property-placeholder location="classpath:jdb.properties"/>

    

    <!-- 配置数据源 -->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

        <property name="driverClass" value="${jdbc.driver}"></property>

        <property name="jdbcUrl" value="${jdbc.url}"></property>

        <property name="user" value="${jdbc.user}"></property>

        <property name="password" value="${jdbc.password}"></property>

    </bean>


?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<!--hirbernate  SessionFactory配置 -->

<bean class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" id="sessionFactory">

     <!-- 数据源 -->

     <property ref="dataSource" name="dataSource"></property>

     <!--各种hibernate属性  -->

     <property name="hibernateProperties">

       <props>

          <!-- 方言 -->

          <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>

          <prop key="hibernate.show_sql">true</prop>

          <prop key="hibernate.format_sql">true</prop>

          <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate3.SpringSessionContext</prop>

       </props>

     </property>

     <!-- 引入小配置 -->

     <!-- <property name="mappingResources" value="cn/hq/beans/Stock.hbm.xml"></property> -->

     <property name="mappingDirectoryLocations" value="classpath:cn/hq/beans"></property>

</bean>


?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<!-- struts2 配置action              scope   范围-->

<bean class="cn.hq.action.AddStockAction" id="addStock" scope="prototype">

    <property ref="service" name="service"></property>

</bean>

<!-- 事务配置 -->

<!-- 注册事务管理器 -->

<bean class="org.springframework.orm.hibernate3.HibernateTransactionManager" id="transactionManager">

    <property ref="sessionFactory" name="sessionFactory"></property>

</bean>

<tx:advice id="txAdive" transaction-manager="transactionManager">

    <tx:attributes>

        <!-- 指定方法的事务隔离机制以及传播行为 -->

        <tx:method name="addStock" propagation="REQUIRED" isolation="DEFAULT"></tx:method>

    </tx:attributes>

</tx:advice>

<aop:config>

    <aop:pointcut id="stockpointcut" expression="execution(* *..service.*.*(..))"></aop:pointcut>

    <aop:advisor pointcut-ref="stockpointcut" advice-ref="txAdive"></aop:advisor>

</aop:config>

构建jdb.properties,连接数据库。



测试类:

首先测试hirbernate整合


struts2整合:

 前提: 必须在Web应用启动时,创建Spring的ApplicationContext实例 
 步骤: 采用ContextLoaderListener来创建ApplicationContext: contextConfigLocation /WEB-INF/spring-config/applicationContext.xml org.springframework.web.context.ContextLoaderListener

  构建action类

  

struts.xml配置文件:

?


1

2

3

4

5

6

7

8

9

10

11

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

    <struts>

        <package name="default" extends="struts-default">

            <!-- 定义action节点      指定action    指定方法 -->

            <action name="addaction" class="cn.hq.action.AddStockAction" method="add">

                <result name="success">/index.jsp</result>

            </action>

        </package>

    </struts>

applicationContext.xml中配置:

web.xml的配置:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<!--?xml version="1.0" encoding="UTF-8"?-->

<web-app xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">

  <display-name></display-name>

  

   <!--指定配置文件的位置和名称  -->

  <context-param>

     <param-name>contextConfigLocation</param-name>

     <param-value>classpath:applicationContext.xml</param-value>

  </context-param>

   <!-- 监听器:作用是在整个网站运行的时候,获取到ServletContext(application)初始化的时候,自动

    注入Spring容器

    -->

   <listener>

      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

   </listener>

   

  <filter>

     <filter-name>struts</filter-name>

     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

  </filter>

  

  <filter-mapping>

  <filter-name>struts</filter-name>

  <url-pattern>/*</url-pattern>

  </filter-mapping>

  

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

测试页面:

add.jsp

时间: 2024-10-15 02:14:29

SSH(1)的相关文章

菜鸟学SSH(十三)——Spring容器解析及简单实现

最近一段时间,"容器"两个字一直萦绕在我的耳边,甚至是吃饭.睡觉的时候都在我脑子里蹦来蹦去的.随着这些天一次次的交流.讨论,对于容器的理解也逐渐加深.理论上的东西终归要落实到实践,今天就借助Spring容器实现原理,简单说说吧. 简单的说,Spring就是通过工厂+反射将我们的bean放到它的容器中的,当我们想用某个bean的时候,只需要调用getBean("beanID")方法. 原理简单介绍: Spring容器的原理,其实就是通过解析xml文件,或取到用户配置的

玩转SSH(五):Struts + Spring + MyBatis(注解版)

本文将在 玩转SSH(四):Struts + Spring + MyBatis 的基础上进行一些小的改动,将原本是 xml 配置方式的项目,改成注解的配置方式. 要将项目改成注解方式,一般是将在 Spring 中创建的对象通过注解的方式直接写在类中.下面我们看看如何进行配置. 一.修改 applicationContext.xml 文件 将原来的bean声明全部删除: <bean id="..." class="..."> <property ..

SSH(2)-- ssh_config和sshd_config

假定服务器ip为192.168.1.139,ssh服务的端口号为22,服务器上有个用户为pi,两边都是ubuntu. ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件 转自: http://blog.licess.com/sshd_config/ http://doc.licess.org/openssh/sshd_config.html # 1. 关于 SSH Server 的整体设定,包含使用的 p

Myeclipse 6.5 整合SSH(一)

Myeclipse 6.5 整合SSH(一) 最近小学期正在学习基于Myeclipse 的SSH整合,期间出现了各种各样的问题.问题太多,后面会整理后陆续另开博文写.因为发现老师教我们的过程与网上的有所不同,所以这里主要介绍MyEclipse的初始设置过程. 实验环境 MyEclipse 6.5 Tomcat 6.0 绿色版 Navicat Premium mysql-5.1.49-win32 环境安装的配置过程略. 1. 新建工程 打开MyEclipse,单击File –>New –> We

Linux 利用hosts.deny 防止暴力破解ssh(转)

一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7系统).Development Tools. 主机ip:192.168.30.64 (服务器端).192.168.30.64(客户端+ 暴力破解[Hydra]) 在30.63上进行暴力破解30.64 2.2 客户端上安装 破解程序 hydra.关于该程序的详情请去官网. 安装该软件的依赖环境: [[

SSH(一):环境搭建

SSH为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架.大多数公司都在使用. 集成SSH框架的系统从职责上分为三层:表示层.业务逻辑层和数据持久层,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转:利用Hibernate框架对持久层提供支持,处理请求数据并返回结果:Spring则是做管理,管理struts和hib

玩转 SSH(七):使用 dubbo + zookeeper 实现服务模块化

一.创建 SSMVCAnnoDemo 项目 点击菜单,选择“File -> New Project” 创建新项目.选择使用 archetype 中的 maven-quickstart 模版创建. 输入对应的项目坐标GroupId 和 ArtifactId 之后在项目名称中填入项目名称,这里我填的 ProjectName 和上文的 ArtifactId 相同,都是 SuperDemo. 点击确定后,等待 Maven 帮我们构建好项目的目录结构.当控制台显示 BUILD SUCCESS 就表示初始化

玩转 SSH(六):SpringMVC + MyBatis 架构搭建(注解版)

一.创建 SSMVCAnnoDemo 项目 点击菜单,选择“File -> New Project” 创建新项目.选择使用 archetype 中的 maven-webapp 模版创建. 输入对应的项目坐标GroupId 和 ArtifactId 之后在项目名称中填入项目名称,这里我填的 ProjectName 和上文的 ArtifactId 相同,都是 SSMVCAnnoDemo. 点击确定后,等待 Maven 帮我们构建好项目的目录结构.当控制台显示 BUILD SUCCESS 就表示初始化

玩转SSH(四):Struts + Spring + MyBatis

一.创建 SSMDemo 项目 点击菜单,选择“File -> New Project” 创建新项目.选择使用 archetype 中的 maven-webapp 模版创建. 输入对应的项目坐标GroupId 和 ArtifactId. 之后在项目名称中填入项目名称,这里我填的 ProjectName 和上文的 ArtifactId 相同,都是 SSMDemo. 点击确定后,等待 Maven 帮我们构建好项目的目录结构.当控制台显示 BUILD SUCCESS 就表示初始化完成了. 初始化完成后