SSH框架学习

时间:2024.3.27

1 Spring框架提供了与其他技术整合的API(整合API可以引用Struts,Hibernate的功能,使用更简洁);

2 Spring框架提供了一个容器,该容器可以创建和管理程序中的组件对像(Spring核心); 3 Spring框架容器提供了IOC特性(可以降低两个组件对象的耦合度)

4 Spring框架容器提供了AOP特性(可以将事务等共通功能以低耦合的方式作用到原功能组件上)。

Spring框架的IOC特性

1 IOC Inverse of Controller称为控制反转,控制:指的是组件对象的创建,初始化,销毁以及关系指定等逻辑。

2 DI Dependency Injection成为依赖注入,依赖注入时Spring实现IOC的技术途径,依赖注入主要分为set方式注入和构造方法注入。

Set注入的格式:

<property name="属性名" ref="要注入的Bean对象id值">

</property>

构造器注入格式:

<construtor-arg index="指定参数索引,从0开始">

ref="要注入的Bean对象的id值"

</construtor-arg>

Spring框架中的AOP概念及其作用

AOP(面向方面编程)

主要概念:

1 方面(Aspect)

方面封装了共通处理,可以切入到其他目标组件方法上。

2 切入点(Pointcut)

用于指定那些组件作为目标,利用一个特殊表达式。Within(类型)

3 通知(Advice)

用于指定方面和目标之间的作用时机。

通知的类型有:

前置通知(<aop:before>)--------先执行方面,再执行目标。

后置通知(<aop:afterReturning>)--------先执行目标,目标方法没抛出异常,在执行方面。

最终通知(<aop:after>)--------先执行目标,目标有无异常都执行方面。

环绕通知(<aop:around>)--------先执行方面前半部分,再执行目标,再执行方面后半部分

异常通知(<aop:afterThrowing>)--------先执行目标,发生异常后再执行方面

AOP作用:AOP是以OOP为基础,用于改善程序组件对象之间的结构,降低耦合度,以方面组件为关注点,方面组件用于封装共同处理逻辑,将来可以别其他目标组件调用,实现了共同处理和目标组件之间的解耦。

Spring MVC学习

Spring MVC主要的构成组件

--DispatcherServlet 主控制器(C)

--HandlerMapping 根据请求定位Controller

--Controller 业务控制器等价于Action

--ModeAndView 封装了模型数据和视图标识

--ViewResolver 视图解析器,定位视图组件生成响应界面(等于Result)

根据web.xml文件理解Spring MVC每个组件的功能以及更个请求的处理过程 <servlet>

<servlet-name>springmvc</servlet-name>

<servlet-class>

org.springframework.web.servlet.DispatcherServlet

</servlet-class>

<init-param>

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

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

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

这个配置文件是SpringMVC和tomcat的接口部分,首先是定义一个servlet对象,这里就是SpringMVC中的DispatcherServlet,主要的作用就是请求的分发,同时在<servlet-mapping>中定义了对应的URL映射地址,这个URL映射地址指定了servlet需要处理的HTTP请求,<init-param>定义servlet在初始化时的参数的配置用来指定Spring IOC容器读取Bean定义的XML文件的路径,最后定义一个监听器,这个监听器是与Web服务器的生命周期向关联的,由ContextLoaderListener监听器负责完成IOC容器在Web环境中的启动过程。

Spring MVC主要处理流程

--客户端发出mvc请求,请求交给DispatcherServlet主控制器处理

--主控制器会调用HandlerMapping组件,根据请求名找到相应的Controller组件

--主控制器调用Controller组件,处理请求,处理完毕返回一个ModeAndView对象(Controller也可以调用DAO等组件)

--主控制器调用ViewResolver解析ModeAndView对象,定位View组件并解析生成响应内容

--将响应内容输出给客户端

Hibernate学习

什么是Hibernate?

Hibernate是数据访问层的框架,对JDBC进行了封装,是针对数据访问层提出的一套面向对象的解决方案,Hibernate允许我们直接访问实体对象,她会将这种访问自动转化为SQL并执行,从而实现间接访问数据库的效果,提高我们数据库开发的效率。

Hibernate设计原理

Hibernate采用ORM设计思想,对JDBC进行封装。

ORM(Object Relation Mapping):对象关系映射,即java实体对象和关系数据库的映射。

这样的映射关系确保我们在使用Hibernate开发过程中直接访问实体对像,然后它会根据对象和关系数据库的映射关系(类中属性和数据库表中字段关系),自动转换为SQL并执行,这样实现访问数据库的目的。

Hibernate的使用步骤

hibernate.cfg.xml:主配置文件,主要用来设置数据库的连接参数以及hibernate框架的系统参数等。

实体类名.hbm.xml:映射关系文件,用来配置实体类和数据库关系表之间的关系,以及实体中属性和表中字段的关系。

知道了这两个配置文件的作用,Hibernate在实际应用中,首先导包,给项目中导入Hibernate的核心包,然后创建hibernate.cfg.xml文件,在配置文件中设置数据库连接参数和Hibernate框架的参数,创建实体类,然后创建实体类名.hbm.xml配置文件, 这里需要注意hbm.xml配置文件必须和实体类名同名,并且在同一路径下,然后再主配置文件hibernate.cfg.xml文件中追加hbm.xml的配置,配置正确后只需要调用需要的hibernate的API,可以实现数据库的增删改查操作。

Hibernate一级缓存

概念:Hibernate在创建Session对象时,会自动的给创建的对象分配一块缓存区,该区域是给Session用来缓存数据的,是由Session负责管理的,这就是一级缓存,也称为Session级缓存。

特点:1 每一个Session都有自己的缓存区,即一级缓存时单个Session独享的。 2 一个Session不能访问其他Session的缓存区,即一级缓存不能交叉访问。 3 访问数据库时,Hibernate会优先向缓存区查找要访问数据,如果缓存去存在数据,则直接返回缓存中的数据,如果缓存去不存在数据,在向数据库查找并返回,同时将查出的数据放到缓存区,提高查询效率。


第二篇:搭建SSH框架总结


搭建SSH框架总结

文章分类:Java编程

SSH框架搭建

作者:卢海

一、框架搭建基础:

a) Eclipce来发环境

b) 相应数据库连接Jar包

二、具体搭建步奏

a) 在eclipce环境中导入Spring框架

选择导入包时要选择Spring的核心包Aop包相应的ORM映射包和Web

b) 在eclipce环境中导入Hibernate框架

导入Hibernate对应的核心包全部导入选择何时的数据库连接方式

注意:应在MyEclicpeDatabaseExplorer中配置相应的数据库

导入Hibernate时注意选择使用Spring配置文件进行配置

c) 在eclipce环境中导入Structs框架

注意Structs应导入Structs1.2或更高版本

(注意:必须按以上顺序导入)

d) 删除asm2.2.3.jar

e) 导入commons-pool.jar连接库

导入方法在eclipce中窗口-首选项-MyEclicpe-ProjectCapabilities 选项中

Hibernate2中的commons-pool.jar 复制到项目的lib目录下

f) 将log4j.properties文件导入

g) 在Web.xml中配置OpenSessionInView模式

代码如下

<filter>

<filter-name>osiv</filter-name>

<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>osiv</filter-name>

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

</filter-mapping>

编写设置字符编码的Filter

Web.xml配置如下

<filter>

<filter-name>setEncode</filter-name>

<filter-class>com.accp.hr.filters.SetEncodingFilters</filter-class>

</filter>

<filter-mapping>

<filter-name>setEncode</filter-name>

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

</filter-mapping>

具体Filter类编码如下:

package com.accp.hr.filters;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class SetEncodingFilters implements Filter {

private String encode;

public void setEncode(String encode) {

this.encode = encode;

}

public void destroy() {

this.encode=null;

}

public void doFilter(ServletRequest servletRequest, ServletResponse

servletResponse, FilterChain chain) throws IOException, ServletException {

HttpServletRequest request=(HttpServletRequest) servletRequest;

HttpServletResponse response=(HttpServletResponse) servletResponse; request.setCharacterEncoding(encode);

response.setCharacterEncoding(encode);

chain.doFilter(servletRequest, servletResponse);

}

public void init(FilterConfig config) throws ServletException {

this.encode=config.getInitParameter("encode");

if(encode==null){

this.encode="utf-8";

}

}

}

h) 配置Hibernate相关内容:

在Hibernate配置文件中找到如下代码并加入以下属性

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

org.hibernate.dialect.MySQLDialect

</prop>

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

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

<prop key="hibernate.hbm2ddl.auto">update</prop> </props>

</property>

I) 配置Struts和Hibernate整合相关内容

在Web.xml中加入如下内容

<context-param>

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

<param-value>/WEB-INF/classes/applicationContext*.xml</param-value>

</context-param>

<listener>

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

</listener>

在Struts配置文件中加入如下内容

注意在<message-resource>标签以上加入如下代码

<controller

processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>

J)加入验证框架

在Structs配置文件下加入如下内容(一般加载尾标签前)

<plug-in

className="org.apache.struts.validator.ValidatorPlugIn">

<set-property

value="/WEB-INF/validator-rules.xml,/WEB-INF/validate.xml"

property="pathnames"/>

</plug-in>

注意在相应目录下应有对应的validate.xml文件,文件名应与所配置的文件名一致,且应有验证文件

一:myeclipse 搭建

1.添加spring支持。

MyEclipse-->Add Spring...-->把AOP Core Web 三个libraries 复选上。 下一步 完成。

2.添加hibernate支持。

首先先打开myeclipse hibernate 视图 建立一个数据库连接。根据不同的数据驱动建立不同的数据库连接。

MyEclipse-->Add Hibernate...--> 根据需要 一步步完成。

3. 添加struts支持。

然后在web.xml文件里

<context-param>

<param-name>contexConfigLocation</param-name>

<param-value>/WEB-INF/applicationContext.xml</param-value>

</context-param>

<listener>

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

再在 struts-config.xml中

<controller

processorClass=\"org.springframework.web.struts.DelegatingRequestProcessor\"> </controller>

这个时候加载项目会报一个确实pool包的错误。 然后到构建路径里去添加起来。

这时候 框架基本搭建好了。

eclipse 搭建SSH步骤

1.导入驱动包。。struts、spring、hibernate的包和数据库连接的驱动包。

2.配置 xml文件。。

3.添加struts-config.xml文件 其中涉及到引用dtd文件

4.添加applicationContext.xml文件 胚子该文件。。(1.连接。2 sessionfactory 3,假如连接字符是写在属性文件里,还要配

属性文件连接的bean)

5.实体映射用到hibernate的插件。(注意表得有主键,不然生成的xml文件有错。)

6.写dao类 biz类 action等

7 写JSP文件。

用eclipse搭建 主要得熟悉3个配置文件的配置。(web.xml 、struts-config.xml、搭建SSH框架 基本步骤

文章分类:Java编程

一:myeclipse 搭建

1.添加spring支持。

MyEclipse-->Add Spring...-->把AOP Core Web 三个libraries 复选上。 下一步 完成。

2.添加hibernate支持。

首先先打开myeclipse hibernate 视图 建立一个数据库连接。根据不同的数据驱动建立不同的数据库连接。

MyEclipse-->Add Hibernate...--> 根据需要 一步步完成。

3. 添加struts支持。

然后在web.xml文件里

<context-param>

<param-name>contexConfigLocation</param-name>

<param-value>/WEB-INF/applicationContext.xml</param-value>

</context-param>

<listener>

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

</listener>

再在 struts-config.xml中

<controller

processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

</controller>

这个时候加载项目会报一个确实pool包的错误。 然后到构建路径里去添加起来。

这时候 框架基本搭建好了。

eclipse 搭建SSH步骤

1.导入驱动包。。struts、spring、hibernate的包和数据库连接的驱动包。

2.配置 xml文件。。

3.添加struts-config.xml文件 其中涉及到引用dtd文件

4.添加applicationContext.xml文件 胚子该文件。(1.连接。。2 sessionfactory 3,假如连接字符是写在属性文件里,还要配

属性文件连接的bean)

5.实体映射用到hibernate的插件。(注意表得有主键,不然生成的xml文件有错。)

6.写dao类 biz类 action等

7 写JSP文件。

用eclipse搭建 主要得熟悉3个配置文件的配置。(web.xml 、

struts-config.xml、applicationContext.xml)

更多相关推荐:
个人年度学习总结

时间飞快的过去,转眼之间大学生活已经接近了的尾声,当回头审视这四年生活时,发现收获到的是一份更坚韧更自信的生活态度。大学四年,是一个不断转变和成长的过程。当年刚踏进校门时内心对未来充满幻想,而现在却是更为踏实和…

镇小学五心教育学习提升阶段活动总结

我校的五心教育提升阶段学习活动已全面结束,现将学习情况总结如下。通过学习,提高了认识,增强了履行五心教育的能力,为践行五心教育指明了方向。五心教育立足县情实际,体现了以人为本的理念,形势在发展,时代在前进,情况…

研究性学习个人总结 精选6篇

范文一:在近一个学期的学习后,我们的研究性学习终于走到一个尽头,在这个学期的研究性学习中,我虽然贡献不大,但在我们这个小组组员的努力下,我们还是完成了这次学习。在这期间我懂得了很多很多,学习了许多以前我所不知道…

研究性学习个人总结

在开放的情境中主动探索,亲身体验,在愉快的心情中自主学习,提高能力,我们在研究性学习中不断收获,得到锻炼,提升自我。这是我们对本次研究性学习的真实体会。在刘老师的策划组织下,我们组员参与调查研究了刘克祥老师的研…

继教个人学习总结

通过十二五中继教阶段相关课程的学习,我知道,学校要发展,必须有一支政治素质过硬,教学能力突出的优秀教师。作为一名普通的教师,我向这个目标看齐,认真参加了中继教的一切培训和活动,完成了学校规定的中继教任务的几年科…

大学生个人学习总结 精选2篇

范文一:一个学期很快就过去了,但这次的心情与以前有很大不同,归心似箭的心情早被考试不理想的惆怅所掩盖。想想若是考的不好如何向父母交代?尤其这次我为了应付英语四级着实花了很多时间,以致把其它功课都拉下了,所以说关…

20xx年中继教个人学习总结

作为一名普通的中学物理老师,在中继教学习过程中,我向达标这个目标看齐,认真参加了中继教的一切培训和活动,圆满地完成了学校规定的中继教任务,提高了自己的教学能力,培形成了自己新的教师素质,特作总结如下。一、师德修…

谈转变学生学习方式的教学案例

谈转变学生学习方式的教学案例随着课程改革的深入开展,广大教师的教学观念在不断更新:注重让学生在实践活动中学习数学,注重学生的自主、探究、合作学习,使学生在获得数学知识与技能的同时,在情感、态度、价值观方面都得到…

化学教学中提高学生学习兴趣的方法与途径

化学教学中提高学生学习兴趣的方法与途径【摘要】在中学中,化学科和语文、数学等学科一样都是一门基础学科,所以,中学化学教学也可以首先从优化课堂教学的设计入手,注重在课堂教学中提高化学教学的趣味性,来提高学生的学习…

例谈学生英语学习能力的培养

例谈学生英语学习能力的培养[摘要]通过我这学期的教学和以往教学作比较,我发现我这学期要比以前教学效果更好。那么我是怎么是上课的呢?首先,我不像以前局限于课本;其次,我把着重点放在怎样让学生学会自学,也就是说,怎…

班主任学习计划

班主任培训学习计划城关一小教师:史丽一、指导思想为进一步提高班级管理水平,努力使自己达到班主任工作的科学化、规范化、专业化,提高德育的实效性,促进学生全面健康和谐的发展。二、学习目标争取做一个思想素质好、专业水…

角色互换对学生自主学习能力的培养

角色互换对学生自主学习能力的培养[摘要]新课程改革强调,教学过程中教师主导、学生主体,注重对学生自主学习能力的培养,那么,如何培养学生自主学习能力呢?通过实践,笔者认为,要落实好这一点,“角色互换’就是一条好的…

学习(506篇)