value="/WEB-INF/classes/"/>配置修改spring动态代理type="">中的注册ActionBean研究配置文件:一.struts的配置文件和以前的struts配置文件一样不同的是程序的运行先要运行" />

ssh学习心得体会

ssh学习心得体会

篇一:SSH学习心得体会

1.加包顺序

struts+Spring+Hibernate

2.剔除,加入(加到lib里面),补上

(补在src下面)

3.加载spring配置文件

className=""> value="/WEB-INF/classes/"/>

配置修改spring动态代理

type="">

中的注册Action Bean

研究配置文件:

一. struts的配置文件

和以前的struts配置文件一样不同的是程序的运行先要运行

.......它的作用是

加载spring 它的写法:

value="classpath:">

程序读完后进入........

在action中和以前不同的是程序将比直接去进入相应的类中处理而是将控制权

交给了spring

在这里action type属性值是:

DelegatingActionProxy 是一个实现类通过它可以把控制权转交给spring 在运行spring

在spring 中找到 action的path值 name属性的值如果找到了name 的属性值和path值相同

就运行spring的这段代码

type="">

二. spring的配置文件主要的组成部分

在spring里面首先要接action的path值/* name是随便取名 ref的值是一个类的代理名是这

个配置文件中存在的bean id的值 */

在spring 里面接转交权的bean 是用name 其他全部用id

spring里面都是一些依赖注入【控制反转】代码

/* private IMyBiz mybiz;【MyAction 类】*/

name的值是这里来的:private IMyDao myDao;[MyBizImpl类] 一定要注意:这里面的name属性值是在具体的实现类中的的接口对象名

三.在刚开始学ssh架构时操作出现的错误:

1.粗心在加包的时候需要细心虽然很简单,但要很清楚每一个框架在加包的时候都要注意的问题

每一个框架在加包的时候都有自己的一种操作

struts 加包的时候需要注意选择struts的版本问题小心出错选struts 版本

spring 开始在复选框中选前3个和最后1个下面选第二个 copy checked...........->next-> 将xml 的名字改为简单点如:这个是spring 的配置文件

hibernate 开始选择复选框中所有下面的选第二个copy

checked.......->next 选第二个spring...

-->选第二个Existing spring ......--> SessinFactory ID : 填 sessionFactory -->next Bean Id 这个是数据源的名字随便给下面选所需的数据库 --》next 选所在工程的路径包

接着new 包 -》 finally

2. 提高编程效率容易出现的错误

·自动生成数据映射文件

在所示的数据库表右击选倒数第二个 Hibernate R....... --->next

复选框选前3个在第2个复选框中把create abstract class 去掉 ---》next 选主键生成器一直next就ok 在这个映射文件中它会生成 struts多表关系如果

程序是单表操作则需要将它干掉做到这里的时候要到这个包中

生成的实体中相应关系的代码都要干掉要干干净我们可以给这个包中在添加接口(规则),这个接口的方法就写它生成DAO中的方法然后再在它生成的DAO类中实现

这个接口的形式字样(其实这个是一个存在的形式,因为时按照人家生成好的方法在写的接口)这样做主要是为了

方便业务层(https://www.360docs.net/doc/c7523109.html,Impl)中进行依赖注入【控制反转】的处理。

Spring 从加入程序开始理解:

package ;

import ;

import ;

import

; import ;

public class DeptDao {

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) { = sessionFactory;

}

private HibernateTemplate getHibernateTemplate(){

return new HibernateTemplate(sessionFactory);

}

public Dept getInfoById(int id){

/**

* 在开始的时候它就是以前的纯hibernate环境下开发的过程它有7大对象7大步骤

* 现在SessionFactory直接有了Spring的管理就可以简化开始的一些步骤不直接读取映射文件(数据源)* 因为这些都有spring进行了管理这里就可以直接的读取配置文件这里需要获取ApplicationContext来操作* 把sessionFactory作为一个javaBean对象注入然后读取的是这个Bean对象

* 获得了SessionFactory对象后就可以打开一个Session 得到session的对象后不用去创建事物了* session可以直接的去调用业务方法这里面得到的Session需要打开关闭

* 这是Spring出现后给Hibernate和Struts带来的便利

* 这个时候不需要对sesion进行管理

* 我们使用模板类(HibernateTemplate)这个类中它

做了对session的管理处理

* 只需要利用这个HibernateTemplate类的getHibernateTemplate()方法

[构造方法]可以给

* 我们做我们想要做的业务处理

* 数据源的获取直接都有spring来做

*/

// ApplicationContext ac = new

ClassPathXmlApplicationContext("");

// SessionFactory sf = (SessionFactory) ("sessionFactory"); // Session s = ();

//

// Dept de =(Dept)(, new Long(id));

//

// ();

// return de;

return null;

}

/**

* 在第二版的时候,引入了Spring的管理 spring的加入是程序的结构更加的规范

* 程序不在是那么具有耦合性而是更具有接偶性

* * 这个时候不需要对sesion进行管理

* 我们使用模板类(HibernateTemplate)这个类中它做了对session的管理处理

* 只需要利用这个HibernateTemplate类的getHibernateTemplate()方法

[构造方法]可以给

* 我们做我们想要做的业务处理

* 数据源的获取直接都有spring来做

*/

public Dept getInfoById2(int id){

// ApplicationContext ac = new

ClassPathXmlApplicationContext("");

Dept de = (Dept) getHibernateTemplate().get(, new Long(id));

return de;

}

}

篇二:学习ssh

学习web项目

先配置用到什么框架向其中添加

用到spring时,添加监听器listener和其路径

contextConfigLocation

classpath:

用到struts时,添加filte设置过滤器类和映射filter-mapping

struts2

struts2

/*

点此查看

dataSource

篇三:SSH&AJAX学习总结

Struts、Spring、Hibernate&Ajax总结

一、 Struts部分

Struts是最早的Java开源框架之一,来自Apache,也

是现在Java Web框架的事实标准。Struts是MVC设计模式的一个优秀实现。Struts定义的通用的Controller,通过Struts配置文件()隔离了Model和View,以Action的概念封装了用户请求,使代码更清晰易读。Struts还提供了自动将请求的数据填充到对象中以及页面标签等简化编码的工具。是开发大型Web项目成为可能。

a) MVC及Struts原理及工作流程

Struts开发的应用由3类组件构成:控制器组件、模型组件和视图组件。

控制器组件包括ActionServlet(核心控制器),还包括自己定义的Action类,由Struts提供。

模型组件不由Struts提供,一般由普通接口和JavaBean 充当。

视图组件一般由JSP,HTML实现,还包括自定义的ActionForm类用来封装数据。 Struts2的核心是WebWork2,继承了webwork2的血统,所以跟有很大的区别,更类似于WebWork,struts2是一个基于MVC Model 2的单点控制的Web应用框架;

1、Struts: jsp+servlet

1)获得客户端参数

2)数据类型转换

3)数据格式验证

4)将参数包装成一个POJO类型

POJO = pure old java object or plain ordinary java object or what ever.

简单的Java对象(Plain Old Java Objects)实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。

PO = persistent object 持久对象

就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persistent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。

PO :persistent object持久对象

1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。

2 .在hibernate持久化框架中与insert/delete操作密切相关。

3 .PO中不应该包含任何对数据库的操作。

---------------------------------------------------------

POJO :plain ordinary java object (也有叫pure old Java object )无规则简单java对象

一个中间对象,可以转化为PO、DTO、VO。

1 .POJO持久化之后==〉PO

(在运行期,由Hibernate中的cglib动态把POJO 转换为PO,PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。PO对于programmer来说完全透明,由于是运行期生成PO,所以可以支持增量编译,增量调试。)

2 .POJO传输过程中==〉DTO

3 .POJO用作表示层==〉VO

PO 和VO都应该属于它。

----------------------------------------------------------

BO :business object 业务对象

封装业务逻辑为一个对象(可以包括多个PO,通常需要将BO转化成PO,才能进行数据的持久化,反之,从DB中得到的PO,需要转化成BO才能在业务层使用)。

关于BO主要有三种概念

1 、只包含业务对象的属性;

2 、只包含业务方法;

3 、两者都包含。

在实际使用中,认为哪一种概念正确并不重要,关键是实际应用中适合自己项目的需要。

----------------------------------------------------------

VO :value object值对象 / view object表现层对象

1 .主要对应页面显示(web页面/swt、swing界面)的数据对象。

2 .可以和表对应,也可以不,这根据业务的需要。

注:在struts中,用ActionForm做VO,需要做一个转换,因为PO是面向对象的,而ActionForm是和view 对应的,要将几个PO要显示的属性合成一个ActionForm,可以使用BeanUtils的copy方法。

----------------------------------------------------------

DTO (TO):Data Transfer Object数据传输对象

1 .用在需要跨进程或远程传输时,它不应该包含业

务逻辑。

2 .比如一张表有100个字段,那么对应的PO就有100个属性(大多数情况下,DTO 内的数据来自多个表)。但view层只需显示10个字段,没有必要把整个PO对象传递到client,这时我们就可以用只有这10个属性的DTO来传输数据到client,这样也不会暴露server端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。

----------------------------------------------------------

DAO :data access object数据访问对象

1 .主要用来封装对DB的访问(CRUD操作)。

2 .通过接收Business层的数据,把POJO持久化为PO。

----------------------------------------------------------

5)将需要显示的数据传递给jsp

6)将请求转发给jsp

7)jsp显示servlet传递过来的数据

2、MVC模式

1)控制器(controller)

1. 接收客户端请求

2. 调用模型的方法

3. 选择其中一个视图进行响应

2)模型(model)

1. 封装应用的状态信息

2. 提供方法可更改和查询这些状态信息

3. 一旦状态信息被更改,马上通知视图重新显示.

3)视图(view)

1. 是用户跟系统交互的接口

2. 可以发送请求给控制器

3. 一旦接收到模型的通知,马上重新显示模型中的数据.

3、WEB应用框架(表现层框架)可以提供的功能:

1)自动获得客户端提交的参数;

2)自动进行数据类型转换和数据格式验证;

3)自动进行数据的包装;

4)能够更方便的将显示的数据传递给视图;

5)自动进行请求的转发;

6)提供标签库,能够更方便的构建视图;

7)国际化(il8n)的实现;

8)能够更方便的跟其他的框架进行集成;

4、Struts框架的优缺点:

1)优点:

1.可以提高软件系统的开发效率;

2.可以提高软件系统的维护性,扩展性和代码重用性;

3.适合于开发一些比较大的项目,可以降低架构的复杂性;

4.一个老牌的框架,支持的用户群很多;

2)缺点:

1.用户写的程序和Struts框架绑定住了,不能脱离框架单独测试运行

框架的运行机制非常复杂,不易于理解。

5、Struts工作流程

1) 当客户端浏览请求到ActionServlet时,ActionServlet首先对请求进行一系列的处理,根据请求的路径和配置信息找到相应的Action Bean和Form Bean.

2) 将请求中包含的值填充到Form Bean中(Action可以不关联任何ActionForm,这一步是可选的),在调用Action 的execute方法前,ActionServlet还要准备好ActionMapping参数,ActionMapping中包含了该Action的配置信息。

3) 然后Struts将请求分发至相应的Action Bean处理,ActionMapping参数、ActionForm参数、request和

response参数都传给处理请求的Action Bean的execute方法。

4) Action调用业务逻辑层方法,得到返回值,并返回ActionForward对象。

5) 控制权重新回到ActionServlet,ActionServlet根据Action返回的ActionForward对象转发到相应的JSP页面。

6) 处理结果返回给浏览器。

详细流程:

1)客户端发起.do结尾的请求;

2)ActionServlet接收请求,交给RequestProcessor 处理(实际上就是调用

RequestProcessor的process方法);

3)RequestProccessor根据请求路径查找对应的ActionMapping;

4)RequestProccessor查找或者创建一个ActionForm 对象(ActionForm可以被重用,存在于两个范围,Session 或者Request);

5)RequestProccessor调用ActionForm的reset方法,重置状态信息;

6)RequestProccessor调用ActionForm的setXXX方法,将客户端提交的参数封装到 ActionForm中;

7)RequestProccessor调用ActionForm的validate方法,如果此方法返回一个

篇四:javaEE个人心得体会

Java EE架构与程序设计大作业心得体会

大作业题目:基于web的教务管理系统

学号:姓名:组别:

本次javaEE课程设计我们这组做的课题是基于web 的教务管理系统,我们组将整个系统设计成基于SSH的教务管理系统,系统总共分为三个角色:学生、教师、管理员。整个系统我们小组成员在组长的带领下实现了:学生登陆该系统可以查看个人信息,查看可选课程,查询成绩,选课等操作。教师登陆该系统可以实现查看个人信息,查看选课情况,录入学生成绩等操作。管理员登陆该系统,可以实现修改学生或老师信息,增加学生或教师信息等操作。

通过这次课程设计,使我灵活应用所学javaEE知识,和小组成员一起完成问题分析,结合javaEE理论知识,编写程序实现系统所需功能。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法分析和解决问题的能力;并用系统的的观点进行系统设计,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的编程风格。进一步加深对SSH框架的知识的理解,并能

够利用SSH框架的知识实现教务管理系统。同时在这学期的实验中,培养了以专业的眼光去对待我们系统中的每一段代码,这算是一次不可多得的实践机会。在这一次的实践过程中,不论是个人动手能力,还是团队合作能力,方方面面都得到了一定程度的提高。在这个过程中,我学会了很多学习的方法。而这是日后最实用也是最宝贵的。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。

这次实验我们根据组长分配的任务,在组长的带领下,我们小组成功实现了教务管理系统。在系统设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了宽容,学会了理解,也学会了做人与处世。课程设计是是一次模拟的社会实践,是我们迈向社会,从事职业工作前一个必不少的过程。实验过程中,也十分感谢张永定老师的指点与教导。这次课程设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。通过这次课程设计使我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。

篇五:关于SSH的总结报告1

关于SSH的总结报告1

Struts2篇

Struts2是Struts的第二个版本,在使用上和配置上基本颠覆了的方式。只是Struts2仍然是基于MVC框架上的。

使用方法:

1. 安装Struts2。

Struts2的入口点是一个过滤器(Filter),需要按照过滤器的方式。

这是在中配置Struts2的代码:

xmlns="http:///xml/ns/javaee" xmlns:xsi="/xml/ns/javaee

http:///xml/ns/javaee/web-app_2_">

struts2

相关文档
最新文档