《SSH框架》Struts2

简介: Struts(金属支架),在程序中表示起支撑作用的通用程序代码,Struts2是在Struts1框架的基础上融合了WebWork优秀框架升级得到的。

一、简介:

1、来由:


 Struts(金属支架),在程序中表示起支撑作用的通用程序代码,Struts2是在Struts1框架的基础上融合了WebWork优秀框架升级得到的。



2、解释:


Struts2框架是一个轻量级的MVC流程框架,轻量级是指程序的代码不是很多,运行时占用的资源不是很多,MVC流程框架就是说它是支持分层开发,控制数据的流程,从哪里来,到那里去,怎么来,怎么去的这样一个框架;



二、配置过程

1、引入Struts2 jar包:



20170409140613385.png


2、编写配置文件:

    *Web.xml---配置核心过滤器

           

20170409140657152.png



代码:

 

 <!-- 配置Struts2的核心过滤器 -->
 <filter>
    <filter-name>struts2</filter-name>
     <filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
 </filter>
 <filter-mapping>
    <filter-name>struts2</filter-name>
     <url-pattern>/*</url-pattern>
 </filter-mapping>



  *Struts.xml

 

  在src文件夹下建立struts.xml文件:



20170409140816887.png


代码:

 

<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache SoftwareFoundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constantname="struts.devMode" value="false" />
</struts>


三、Spring整合Struts2



Spring也提供了MVC模式的支持,但Struts是比较单纯的MVC框架,开发中更倾向Spring和Struts整合开发。Struts和Spring的整合比较简单顺畅。


  整合关键点是:将Struts中的Action的实例生成不再由Struts负责,而交给Spring容器管理,主要目的是让控制器与业务逻辑组件实现分离。基于该目的,我们采用工厂模式策略,让Spring容器管理Action,利用IoC的依赖注入特性为控制器注入业务逻辑组件。Struts只单纯扮演控制器的角色。


  下面是Spring和Struts整合的关键步骤。Struts的核心控制器必须能装载Spring的应用程序环境。


   Spring和Struts整合有两种方式


   1、Struts2的Action由Struts2框架自身创建.


   2、Struts2的Action交给Spring框架创建.


  我们推荐使用第二种方式,因为第二种方式,Action类由Spring容器进行管理,可以方便的对Action类进行AOP的编程。但第二种有一个关键地方:就是在Struts2框架创建Action类的时候,默认是多例的。而Spring容器在管理类的时候,默认创建是单例的.单例的这种方式就容易产生线程安全问题.所以一定要配置类的scope属性。


  关于scope的了解:http://blog.csdn.net/camper001/article/details/6121910


 *********************** 以后台商品管理为例***************************


 在Spring的配置文件中配置:

<!--商品模块的Action -->
<bean id="adminProductAction" class="cn.itcast.shop.product.adminaction.AdminProductAction"scope="prototype"></bean>


 在Struts的配置文件中配置:

 

1. <actionname="adminProduct_*" class="adminProductAction"method="{1}">
2. </action>



比如,添加商品,

 

    1.在前台商品页面,请求添加商品,请求访问addPage方法:

window.location.href= "${pageContext.request.contextPath}/adminProduct_addPage.action";


2.跳转到Struts中对应类的名称为“adminProduct”中,在applicationContxt(Spring的配置)中adminProductAction对应的是此地址下类:"cn.itcast.shop.product.adminaction.AdminProductAction" ,于是在此action中查找添加商品需要的方法addPage;


public String addPage(){
//查询所有的二级分类的集合:
List<CategorySecond>csList=categorySecondService.findAll();
//通过值栈来保存数据
ActionContext.getContext().getValueStack().set("csList",csList);
//页面跳转
return"addPageSuccess";                
}


 在此方法中要求返回addPageSuccess,我们在Struts中规定,返回addPageSuccess时,跳转到add.jsp:


<resultname="addPageSuccess">/admin/product/add.jsp</result>


   此时,在ssh框架中,Struts实现了控制器,控制跳转,但并不负责实例的生成。


   以上是我对Struts的理解和框架的搭建,请路过的大鸟批评指点。

















相关文章
|
7月前
|
存储 Java 应用服务中间件
SSH开发模式——Struts2进阶
SSH开发模式——Struts2进阶
|
6月前
|
Java 关系型数据库 MySQL
JSP SSH公车拍卖系统myeclipse开发mysql数据库bs框架java编程网结构
JSP SSH公车拍卖系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
49 0
|
3月前
|
前端开发 Java 网络安全
基于SSH框架甜品商城管理系统【源码+数据库】
基于SSH框架甜品商城管理系统【源码+数据库】
|
6月前
|
前端开发 Java 关系型数据库
JSP仓库进销存系统ssh框架mysql数据库myeclipse开发mvc结构java
JSP 仓库进销存系统(struts2+hibernate) 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
31 0
|
7月前
|
Java 网络安全 Spring
SSH框架学习中遇到的问题
SSH框架学习中遇到的问题
32 0
|
9月前
|
Java 应用服务中间件 网络安全
【ssh系列一】——框架搭建
建立项目(SpringMVC+Spring+hibernate的maven项目)
|
9月前
|
设计模式 开发框架 缓存
SSH框架简介篇
SSH框架简介篇
199 0
|
10月前
|
SQL 缓存 Java
《SSH框架》---Hibernate
《SSH框架》---Hibernate
|
10月前
|
Java 数据库连接 网络安全
《SSH框架》---spring
《SSH框架》---spring
|
10月前
|
Java 数据库连接 网络安全
《SSH框架》---还你一个清晰的配置
一开始敲ssh,完全被各种配置弄晕了,看着视频里的老师,一会儿往application中配置,一会儿往Struts里配置,最重要的是,他以为我都理解了,完全不告诉我为什么这样配!当时,我在心里哭啊,老师,我并不知道为什么啊!哭完了之后,自己研究,人就是这样,在哪里跌倒就在哪里爬起,然后跌倒,然后再爬起。。。所以,那些成功的人在人前虽然看着都是光鲜亮丽的,但他柜子里有几身磨破的衣服,只有他自己知道。 现以后台管理员登录来走一遍整个配置过程。