SSH搭建环境.docx

上传人:b****8 文档编号:10506591 上传时间:2023-02-17 格式:DOCX 页数:25 大小:1.39MB
下载 相关 举报
SSH搭建环境.docx_第1页
第1页 / 共25页
SSH搭建环境.docx_第2页
第2页 / 共25页
SSH搭建环境.docx_第3页
第3页 / 共25页
SSH搭建环境.docx_第4页
第4页 / 共25页
SSH搭建环境.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

SSH搭建环境.docx

《SSH搭建环境.docx》由会员分享,可在线阅读,更多相关《SSH搭建环境.docx(25页珍藏版)》请在冰豆网上搜索。

SSH搭建环境.docx

SSH搭建环境

S2SH整合的一个简单Demo

 

1.概述

就现在WEB开发而言,J2EE企业级开发技术比较成熟,开发模式模式也比较繁多,较流行开发模式MVC更是普遍,而基于MVC模式开发的框架也是种类繁多,现在使用最多的可能就是S2SH这三种框架,而现在S2SH的开发也有不同的配置方法,所以这里对这三个框架的整合使用举一个简单的Demo。

2.准备工作

1)环境配置:

因为S2SH使用到的是三种基于java语言实现的开源框架,所以基本要先把JRE配置好即安装JDK(6.x)。

2)配置好Struts2,Spring,Hibernate这三个开源框架的开发环境配置。

鉴于简单起见可以使用MyEclipse6.5或者更高的版本的IDE,三种开源框架的配置文件IDE已经集成好或者可以从下载的开发包里找到实例代码,直接添加就可以使用,具体的可以查阅下面较为消息的步骤。

3)开发使用的部署工具是Tomcat6.x。

4)开发使用的数据库是mysql5.x,开源,并且比较小巧,当然你可以选用oracle。

这些开发软件的安装我就不一一详说了,相信组员都有能力安装好的。

3.构建一个s2sh整合的项目

1)确定生成名为seehope_demo的项目,其生成的目录如下:

2)添加三大框架的支持(添加jar包):

在刚刚创建的seehope_demo工程上面右击,在弹出的窗口菜单选择BuildPath-ConfigureBuildPath…,再点击AddExternalJARs…,选择你要添加的三大框架jar包。

以下是三大框架基本的jar包列表,有些可能暂时不需要。

3)然后开始配置运行Demo所需要的配置文件,以下的配置文件均放在src的目录下。

为什么这样配置,我就不在这里详讲了(有些我就在代码上写了注释了),有兴趣的组员可以到XX或谷歌去搜搜,他们知道的远比我好,远比我详细。

a)webproject运行的时候,读取的配置文件是web.xml

 

xmlversion="1.0"encoding="UTF-8"?

>

xmlns="xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"xsi:

schemaLocation="

index.jsp

--

用户请求request–>StrutsPrepareAndExecuteFilter–>Interceptor(Struts2内置的一些拦截器或用户自定义拦截器)–>Action(用户编写的action类,类似struts1中的Action)–>Result(类似struts1中的forward)–>JSP/HTML–>向客户端响应Response;StrutsPrepareAndExecuteFilter是Struts2框架的核心控制器,它负责拦截由/*指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。

默认情

况下,如果用户请求的路径不带后缀或以.action结尾,这时请求被转入Strtus2框架处理,否则Strtus2框架将掠过该请求的处理。

当请求转入Struts2框架处理时会先经过一系列的拦截器,然后再到Action.

-->

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

--ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。

-->

org.springframework.web.context.ContextLoaderListener

--如果不配置下面的,默认是/WEB-INF/applicationContext.xml-->

contextConfigLocation

/WEB-INF/applicationContext-*.xml,classpath*:

applicationContext-*.xml

 

Struts的基本工作流程

i.WEB启动,初始化ActionServlet,读取struts2.xml的配置信息,作准备。

ii.用户发出一个请求,ActionServlet接受,根据ActionMapping查找相应的Action。

iii.Action调用JavaBean,并且结合BeanService处理数据。

iv.处理完成后,返回指定转向的地方。

Spring框架也是一个开源框架,它的核心概念是依赖注入(DependencyInjection),通过依赖注入机制,可以再运行期间将组件之间的依赖关系由Spring容器注入组件,同时spring框架还提供AOP开发以及事务管理的组件,以及对WEB层和持久层的支持,从而可以很好配合Struts2和Hibernate框架。

b)接着struts2.xml

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEstrutsPUBLIC

"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"

"http:

//struts.apache.org/dtds/struts-2.0.dtd">

--

加载子配置文件Struts2框架的核心配置文件就是struts.xml配置文件,该文件主

要负责管理Struts2框架的业务控制器Action。

在默认情况下,Struts2框架将自

动加载放在WEB-INF/classes路径下的struts.xml文件。

为了避免随着应用规模的

增加,而导致的struts.xml文件过于庞大,臃肿,从而是该文件的可读性下降。

我们

可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。

-->

--定义一个Action名称为addUser,实现类为seehope.demo.web.UserAction.java-->

--任何情况下都转入到/test.jsp-->

/test.jsp

--返回success时,转入到/test.jsp-->

--/test.jsp-->

--通过include元素导入其他元素-->

---->

--Addpackageshere-->

 

Package配置

Struts2框架使用包来管理Action和拦截器等。

每个包就是多个Action、多个拦截器、多个拦截器引用的集合。

使用package可以将逻辑上相关的一组Action,Result,Intercepter等组件分为一组,Package有些想对象,可以继承其他的Package,也可以被其他package继承,甚至可以定义抽象的Package。

Package的可以使用的属性:

属性是否必须说明

name是Package的表示,为了让其他的package引用

extends否从哪个package集成行为

namespace否参考Namespace配置说明

abstract否定义这个package为抽象的,这个package中不需要定义action

package元素用于定义包配置,每个package元素定义了一个包配置。

定义package元素时可以指定如下几个属性:

name:

必填,指定包的名字,该名字是该包被其他包引用的key。

extends:

可选,指定该包继承其他包。

继承其他包,可以继承其他包中的Action定义、拦截器定义等。

namespace:

可选,定义该包的命名空间。

abstract:

可选,它指定该包是否是一个抽象包。

抽象包不能包含Action定义。

 

Namespace配置(命名空间配置)

Struts2以命名空间的方式来管理Action,同一个命名空间里不能有同名的Action,不同的命名空间里可以有同名的Action。

Struts2不支持为单独的Action设置命名空间,而是通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。

Namespace将action分成逻辑上的不同模块,每一个模块有自己独立的前缀。

使用namespace可以有效的避免action重名的冲突,例如每一个package都可以有自己独立的Menu和Helpaction,但是事项方式各有不同。

Struts2标签带有namespace选项,可以根据namespace的不同向服务器提交不同的package的action的请求。

“/”表示根namespace,所有直接在应用程序上下文环境下的请求(Context)都在这个package中查找。

“”表示默认namespace,当所有的namespace中都找不到的时候就在这个namespace中寻找。

c)然后是applicationContext-common.xml

xmlversion="1.0"encoding="UTF-8"?

>

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xmlns:

context="http:

//www.springframework.org/schema/context"

xsi:

schemaLocation="http:

//www.springframework.org/schema/beans

http:

//www.springframework.org/schema/beans/spring-beans-2.5.xsd

http:

//www.springframework.org/schema/context

http:

//www.springframework.org/schema/context/spring-context-2.5.xsd

">

annotation-config/>

--应用annotation主动注册bean,并保证@Required,@Autowired的属性被注入-->

component-scanbase-package="seehope.demo"/>

--

Spring的框架中为您提供了一个BeanFactoryPostProcessor的实作类别:

org.springframework.beans.factory.config.PropertyPlaceholderConfigurer。

藉由这个类别,您可以将一些组态设定,移出至.properties档案中,如此的安排可以

让XML定义档负责系统相关设定,而.properties档可以作为客户根据需求,自定义一些相关的参数。

-->

--定义受环境影响易变的变量-->

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

--标准配置-->

classpath:

jdbc.properties

--数据源配置,应用利用内的DBCP数据库连接池-->

--

class="mons.dbcp.BasicDataSource">

-->

--数据源配置,应用利用服务器的数据库连接池-->

--

jndi-lookupid="dataSource"

jndi-name="java:

comp/env/jdbc/ExampleDB"/>

-->

--Hibernate配置-->

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

org.hibernate.dialect.MySQLDialect

true

true

create

30

--

ming.model.**Class1

ming.model.**Class2

-->

seehope.demo.model

连接数据库的配置文件jdbc.properties,

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc\:

mysql\:

//localhost\:

3306/demo

jdbc.username=root

jdbc.password=admin

还有log4j.properties(在hibernate开发包里有,这里我就不贴出代码来了,具体路径hibernate-3.x\hibernate-3.x\etc\log4j.properties)

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

还是那句话XX和谷歌是你的老师,去问他们吧。

4)编写代码

代码的编写也是有几层结构的,我也不能很好的详细叙述出来,还是谷歌和XX比较稳固。

我这这里找了几幅图,可以帮助组员了解这几层结构,也是发展过程吧。

 

Model层:

UserDAO接口:

UserDAOImpl是UserDAO的实现:

UserService接口:

UserServiceImpl是UserService的实现:

 

Action层:

他们之间的关系,相信通过组员上面的几个结构图和XX、谷歌的搜索可以了解到。

 

4.测试效果

1)测试首页index.jsp

代码如下:

运行效果图:

2)填写用户名和密码,点击增加用户。

3)解决乱码问题

如果输入的是中文:

出现乱码

解决方法:

首先的步骤,当然是把开发平台,所有的文件以及mysql数据库的编码都设置为统一的编码,这是是utf-8

如果依然有错误,在进行发送请求之前,设置一个filter,过滤所有的信息,所以在web.xml的最前面加上如下代码:

而MyEncodingFilter的代码如下:

在进行插入,运行结果为:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1