您的位置:

javassh框架,java openssh

本文目录一览:

北大青鸟java培训:学习Java常用的SSH框架是什么呢?

Java框架一直是面试的重点,在成熟的大型企业、快速发展的企业和初创企业中都需要掌握Java框架,这样才能对当前正在开发的系统有一个大致的了解,以便更好地熟悉基础知识和相关技术。

那么学习Java常用的框架是什么,应该如何使用呢?下面广东计算机学习为大家具体介绍。

SSH框架的组合主要由Struts,Spring,Hibernate这3个框架构成,把Struts作为系统整体的基础结构加以利用,负责MVC的分离,在Struts框架的模型部分,控制业务的跳跃,利用Hibernate框架支持持续性层,利用Spring管理Struts和Hibernate。

下文北大青鸟广东计算机学院具体说明了这三种框架:Struts框架Struts框架基本上是基于相当于Servlet的MVC设计模式的Web应用程序框架。

MVC设计模式使用Struts2作为控制器(Controller)来建立模型和视图之间的数据交互。

广东广东java软件开发发现它包含Struts1和Struts2两个版本,两者的差异实际上还很大,Struts2虽然不是Struts1的更新,但是充分发挥了这两种技术的优点,它放弃了原来Struts1的缺点,使Web开发更加容易。

Spring框架我们都应该知道,最传统的JavaWeb应用程序是通过JSP、Servlet、Javabean实现的,它实现了最基本的MVC分层。

该结构存在一些问题,如JSP需要使用符号在页面中嵌入大量Java代码,页面结构混乱,Servlet和Javabean负责大量的跳转和操作工作,紧密耦合,程序重用低等。

广东计算机学校发现Spring框架的出现解决了这个问题。

通过对AOP和IOC两个特性的加持,所有类之间的这种依赖完全被配置文件所取代,实体bean被很好地管理到容器中,所以耦合大大降低,可重用性大大提高。

Hibernate框架Hibernate框架是半自动化的永久性层框架,SQL的大幅度削减,代码的制作,在这个框架中,需要相关作业的时候,不需要注意数据库表,通过将一个级别永久性化就可以达到添加,删除和检查的功能。

广东广东IT培训发现这是因为在框架内部实现了很多针对数据库的操作方法。

有SSH三大框架的简单介绍吗?

SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。\x0d\x0aStruts2简介:\x0d\x0aStruts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。\x0d\x0aSpring简介:\x0d\x0aSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。\x0d\x0aHibernate简介:\x0d\x0aHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来\x0d\x0a操纵数据库。 \x0d\x0aHibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命\x0d\x0a意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

JAVA SSH框架搭建流程

首先,明确spring,struts,hibernate在环境中各自的作用。

struts:

用来响应用户的action,对应到相应的类进行处理。需要struts对应的包。

hibernate:

用来把实体类对应到数据库。提供增删改查的基本操作实现。需要hibernate对应的包以及mysql的jdbc驱动包。

spring:

管理struts:在xml配置文件中为struts的action进行值注入。

管理hibernate:在xml配置文件中配置hibernate的配置信息(dataSource,sessionFactory),即不需要原来的hibernate的xml文件。为hibernate的dao操作注入sessionfactory属性值。

需要提供spring对应的包,除此以外,还需要提供一个整合spring与struts的包:truts2-spring-plugin-2.0.11.1.jar

下面就搭建步骤进行详细说明:

1、新建一个web project,导入包,需要的包放在文件夹sshlib中。

2、修改web.xml的配置信息,内容如下:

?xml version="1.0" encoding="UTF-8"?

web-app version="2.5" xmlns=" "

xmlns:xsi=" "

xsi:schemaLocation="

"

welcome-file-list

welcome-fileindex.jsp/welcome-file

/welcome-file-list

!-- 下面的listener,是spring提供的,它会在创建时自动查找WEB-INF下的applicationContext.xml文件 ,从而创建spring容器--

listener

listener-class

org.springframework.web.context.ContextLoaderListener

/listener-class

/listener

!-- 下面的配置作用是:在MyEclipse中,系统会自动到WEB-INF下寻找 applicationContext.xml文件,而系统

会自动将applicationContext.xml放置到WEB-INF下的classes下,所以会产生找不到applicationContext.xml的错误,需要指明applicationContext.xml

的放置位置。这就是下面的信息作用。在Eclipse中也许不需要此配置信息。--

context-param

param-namecontextConfigLocation/param-name

param-value

/WEB-INF/classes/applicationContext.xml

/param-value

/context-param

!-- 下面的配置信息,用来配置说明使用struts过滤器 --

filter

filter-namestruts2/filter-name

filter-class

org.apache.struts2.dispatcher.FilterDispatcher

/filter-class

!--

下面的配置信息用来说明:程序中运行的action放置在哪个包下面,对于list.action的请求,它会自动在这个包下面寻找ListAction.class的类

如果没有这句话,那么所有的action请求只能在struts.xml中进行配置。

--

init-param

param-nameactionPackages/param-name

param-value

com.action

/param-value

/init-param

/filter

!--

下面的配置表示对于所有请求都交给struts来处理。

--

filter-mapping

filter-namestruts2/filter-name

url-pattern/*/url-pattern

/filter-mapping

/web-app

3、接下来用来配置struts.xml

?xml version="1.0" encoding="UTF-8" ?

!DOCTYPE struts PUBLIC

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

" "

struts

!-- 指定Web应用的默认编码集。该属性对于处理中文请求参数非常有用,对于获取中文请求参数值,应该将该属性值设置为GBK或者GB2312 当设置该参数为GBK时,相当于调用HttpServletRequest的setCharacterEncoding方法 --

constant name="struts.i18n.encoding" value="utf-8" /

constant name="struts.devMode" value="true" /

package name="default" namespace="/" extends="struts-default"

interceptors

!-- 定义拦截器 --

interceptor name="crudInterceptor"

class="com.action.CrudInterceptor" /

interceptor-stack name="appStack"

interceptor-ref name="crudInterceptor" /

!-- 下面一行自带的拦截器必须加上,否则出错 --

interceptor-ref name="defaultStack" /

/interceptor-stack

/interceptors

!-- 使用默认拦截器配置Action都需要拦截器堆栈

即所有struts请求都自动先交给拦截器处理。关于拦截器的具体规则在拦截器对应类(com.action.CrudInterceptor)中进行了解释。

--

default-interceptor-ref name="appStack"/default-interceptor-ref

/package

/struts

4、接下来配置applicationContext.xml:

?xml version="1.0" encoding="UTF-8"?

beans xmlns=" "

xmlns:aop=" "

xmlns:xsi=" "

xsi:schemaLocation="

"

!-- 数据源 --

bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource"

property name="driverClassName"

value="org.gjt.mm.mysql.Driver" /

property name="url" value="jdbc:mysql://localhost:3306/user" /

property name="username" value="root" /

property name="password" value="" /

/bean

!-- sessionFactory配置 --

bean id="sessionFactory"

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"

property name="dataSource" ref="dataSource" /

property name="mappingResources"

list

valuecom/ssh/User.hbm.xml/value

/list

/property

!-- 定义sessionFactory的属性 --

property name="hibernateProperties"

props

prop key="hibernate.dialect"

org.hibernate.dialect.MySQL5InnoDBDialect

/prop

prop key="hibernate.hbm2ddl.auto"update/prop

prop key="hibernate.show_sql"true/prop

prop key="hibernate.format_sql"true/prop

/props

/property

/bean

!-- hibernate的类名,属性名和数据库之间的对应关系的自定义 com.ynstudio.tools.LocalNamingStrategy --

bean id="namingStrategy"

class="org.hibernate.cfg.ImprovedNamingStrategy"

/bean

!-- 定义DAO的bean --

bean id="userDao"

class="com.ssh.UserDaoImpl"

property name="sessionFactory" ref="sessionFactory" /

/bean

!--

下面的代码用来向Action类注入属性值

--

bean id="crudAction" class="com.action.CrudAction"

property name="userDao" ref="userDao"/property

/bean

/beans

5、上述配置文件完成后,就开始业务逻辑部分。

首先完成hibernate的curd操作部分内容。

设计一个User实体类。包含数据库中User表的字段。

新建一个User.hbm.xml文件,实现实体类与数据库的关联。内容如下:

?xml version="1.0"?

!DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD//EN"

" "

hibernate-mapping

class name="com.ssh.User" table="user"

id name="id" column="id"

generator class="increment" /

/id

property name="username" column="username" /

property name="password" column="password" /

property name="birthday" column="birthday" /

property name="email" column="email" /

/class

/hibernate-mapping

接下来需要实现dao操作。

设计一个类继承了HibernateDaoSupport类。关于HibernateDaoSupport类,请参考相关文档。

6、完成hibernate的设计后,接下来设计struts的拦截器和struts的action。

struts的拦截器:

package com.action;

import java.lang.reflect.Method;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionInvocation;

import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**

* 这个类的是拦截器。

* 对于如下URL:

*

* actionInvocation.invoke()方法会自动调用名称了HelloAction类的list方法。

* 在action中根据该方法的返回值决定页面显示或跳转位置。

* result值除了可以再action类中定义,还可以在struts.xml中配置。

* 配置时可采用如下语句:

* action name="hello" class="crudAction"

* result name="list"/list.jsp/result

* result name="modify"/modify.jsp/result

* /action

* 此处需要格外注意的是:class属性的值,此值是applicationContext.xml中的id。

* 该bean中注入了action类中属性userDao的值。

* 所以,如果需要使用struts.xml中的action配置,需要使用该id,否则,系统不会给其注入值,最终导致空指针异常。

* @author HeXiaoXing

*

*/

public class CrudInterceptor extends AbstractInterceptor{

public String intercept(ActionInvocation actionInvocation) throws Exception {

/*

*下面代码演示了获取请求的类名与方法名的一半方式,但本例中不涉及。 全部注释掉。

*/

// Object action = actionInvocation.getAction();

// Class actionClass = action.getClass();

// String actionClassName = actionClass.getSimpleName();

// String methodName = actionInvocation.getProxy().getMethod();

return actionInvocation.invoke();

}

}

struts的action,关于此action的全部内容,请参考源程序CrudAction。

7、完成了类设计后,就是页面的设计,关于页面的设计,不再一一叙述,给粗源文件,请自行参考。

需要提出的是,在转向时,url的格式必须是method:方法名。这是约定的,不可以写成method=方法名。

java的三大框架SSH 难学吗?

难学,找到方法,就很容易,总结方法如下:

第一步,看视频或者入门文章。视频可以去verycd找,文章可以去iteye找。先看Struts2,也可以看SpringMVC3,然后是Hibernate,最后看Spring。

这一步的目的是知道每个框架作用,能干什么,大概上怎么使用。

第二步,看项目,推荐SpringSide。这个步骤可以知道实际项目中SSH一般是怎么配合的。

第三步,自己动手。如果能实现一个单表完整的增删改查,算是基本完成任务。能再考虑下怎么更通用化,写点东西,这块就没问题了,到哪个公司去,只要稍微看下他们的配置文件,都能上手。

需要思考的是有框架和没有框架,到底能带来什么。

有人不喜欢SSH框架,也有人推荐别的框架,个人喜欢nuts框架,但是总需要明白的是框是干什么用的,怎么用的,在实际运用中有了一些体会,才能明白自己的取舍。

用Struts,是要明白MVC,用Hibernate,要明白什么是持久化,什么是OR/mapping,用Spring,要明白什么是依赖注入,什么是AOP。就算不精通,也要大致理解。明白了这些,Hibernate换成Mybaits,Struts换成SpringMVC,甚至别的什么框架,都能很快上手。

java中的ssh框架到底是什么

SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。

集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。

系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。