传统三大框架(SSH)之初识Struts2

Struts2(Struts1+webworks的整合)

Struts和SpringMVC都是基于servlet来做的控制器   struts是Apache的一个子项目

servlet默认是单例模式,而Struts2的action默认的是prototype模式(一个请求创建一次对象

    Prototype模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象。)

定位:Apache Struts is a free, open-source, MVC framework for creating elegant, modern Java web applications.

废话少说,直接上例子 servlet

HelloSvl

Hello.jsp                                  测试结果

上述为传统的servlet容器进行接收数据并转向(较为简洁 目的是与Struts做对比)

Struts容器的实现步骤

  a、引包(对于初学者,MyEclipse有向导,后期指导意义就不大了)

    MyEclipse-->Project Capabilities-->Add Struts Capabilities.....  --->Struts specification(选择Struts2.1)

  

推荐使用*.action    *.do(Spring MVC)

添加之后   会自动在src下创建一个strtus.xml文件  它的名字和位置固定  不能变

在web.xml里边增加了下列的一个核心过滤器

b、在struts.xml中开始写配置文件

  

  package name为自定义的、action name为*.action中的* 、result name则是HelloAction中return的结果

  result内部为结果返回路径                                                  

 转向类型   在本文中用的是默认 即第二个

  <result-types>
            <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
            <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
            <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
            <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
            <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
            <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
            <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
            <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
            <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
            <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
        </result-types>

c、编写HelloAction 

 

Hello.jsp                              测试结果

Struts项目的启动    (当进行到init.initDispatcher(config),对下列的几个文件进行Parsing)

  2016-10-15 11:36:02 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
  信息: Parsing configuration file [struts-default.xml]
  2016-10-15 11:36:03 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
  信息: Parsing configuration file [struts-plugin.xml]
  2016-10-15 11:36:03 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
  信息: Parsing configuration file [struts.xml]

运行一次具体的流程(浏览器中的*.action中的*即Struts中的action name)

Struts项目的启动:
     1.
       2016-10-14 10:58:33 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
    信息: Parsing configuration file [struts-default.xml]
    2016-10-14 10:58:33 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
    信息: Parsing configuration file [struts-plugin.xml]
    2016-10-14 10:58:33 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
    信息: Parsing configuration file [struts.xml]

2. 访问http://localhost:8089/Hello/hello.action?msg=hello

被StrutsPrepareAndExecuteFilter的doFilter拦截
      
       A、切取URL,获得ActionMapping对象    (读出action名字,method名字,namespace名字)
       B、读取Struts.xml中的配置项 ,通过反射技术,动态创建Action对象
       C、通过反射,调用Action中的execute()方法
       D、返回Action方法中的result值
       E、读取Struts.xml中的配置项 ,自动转向到需要的jsp页面

时间: 2024-10-12 08:36:48

传统三大框架(SSH)之初识Struts2的相关文章

[转]JAVA三大框架SSH和MVC理解

Java—SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是Model; struts提供的丰富标签是用于显示层View;同时struts也充当了实现Control的功能(不管是Struts1,还是Struts2),接收参数,视图分发. Spring是用于降低层与层间耦合度的,就是所有的类都可以由spring统一创建,用时只需注入即可(IOC) 从功能上来说

JAVA三大框架SSH的各自作用

一.Spring Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯.Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器.然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的. Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错

java开发中经典的三大框架SSH

首先我们要明白什么是框架为什么用?相信一开始学习编程的时候都会听到什么.什么框架之类的:首先框架是一个软件半成品,都会预先实现一些通用功能,使用框架直接应用这些通用功能而不用重新实现,所以大多数企业都用框架都是提高开发效率,节约开发成本. 绝大多数框架都遵循着一种mvc设计模式思想,MVC是Model-View-Controler的简称.即模型-视图-控制器.MVC是一种设计模式,它强制性的把应用程序的输入.处理和输出分开.MVC中的模型.视图.控制器它们分别担负着不同的任务. 视图: 视图是用

转 :手动配置三大框架整合:Spring+Struts2+mybatis

现在主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,其实它们都是一样的,下面我来把环境搭建一下: [导入相关jar包]新建web项目工程mss,Spring+Struts2+mybatis整合,除了Spring和Struts的jar包外(可以在我的资源中下载),我们还需导入mybatis的几个想jar包: 三大框架整合后jar包: [配置web.xml] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

手动配置三大框架整合:Spring+Struts2+mybatis

现在主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,其实它们都是一样的,下面我来把环境搭建一下: [导入相关jar包]新建web项目工程mss,Spring+Struts2+mybatis整合,除了Spring和Struts的jar包外(可以在我的资源中下载),我们还需导入mybatis的几个想jar包: 三大框架整合后jar包: [配置web.xml] <?xml version="1.0" encoding="UTF-

Struts2,Spring, Hibernate三大框架SSH的整合步骤

整合步骤 创建web工程 引入相应的jar包 整合spring和hibernate框架 编写实体类pojo和hbm.xml文件 编写bean-base.xml文件 <!-- 1) 连接池实例 -->    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass"

深入浅出Java三大框架SSH与MVC的设计模式

现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate.似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和找工作的必备基础. 然而,如果在面试的时候问这些程序员,你们为什么要学习这些框架?这些框架的本质到底是什么?似乎很少很少有人能够给我非常满意的答复.因为他们都在为了学习而学习,为了工作而学习,而不是在真正去深入了解一个框架.其实所有的人都应该思考这样的问题:为什么要学习框架?框架到底给我带来了什么?

(转)深入浅出Java三大框架SSH与MVC的设计模式

原址:http://www.educity.cn/java/1382738.html 现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2, Spring,Hibernate.似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和找工作的必备基础. 然而,如果在面试的时候问这些程序员,你们为什么要学习这些框架?这些框架的本质到底是什么?似乎很少很少有人能够给我非常满意的答复.因为他们都在为了学习而学习,为了工作而学习,而不是在真正去深入了

三大框架(SSH)关于URL转发乱码问题(最简单暴力的一种解决办法)

这两天在整合三大框架时遇上Struts2的URL转发乱码问题,搞了很久也上网查了很多资料,写了过滤器,改过配置,全部都没用.只能用最简单暴力的一种,手动转换乱码.因为编辑器一开始默认的编码是ISO-8859-1,所以要将ISO-8859-1转换成utf-8. 一般乱码问题,先检验数据库的编码是否对应,一般安装数据库的时候设定了默认编码,如果没有设定为utf-8,添加中文时可能会出现乱码---只能修改配置或重装数据库(这不是本博文的重点).检验数据库后,再检验页面编码是否一致,若还不能解决乱码问题