Struts2入门学习(一)

Struts2框架

  • 什么是软件框架:

1、框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提高开发效率。
2、框架已经实现了一些基础功能,这样就可以提高开发效率!

  • struts2框架简述:

1、Struts 2是在 struts 1和webwork的技术基础上进行了合并的全新的Struts 2框架。
2、其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以webwork为核心
3、struts2=struts1+webwork;
4、struts2是一个标准的mvc框架。

  • XWork—它是webwork核心,提供了很多核心功能:

1、前端拦截机(interceptor)
2、运行时表单属性验证
3、强大的表达式语言(OGNL – the Object Graph Navigation Language)
4、IoC(Inversion of Control反转控制)容器等

  • struts2框架核心功能:

1、请求数据自动封装;
2、文件上传的功能;
3、对国际化功能的简化;
4、更强大、更易用输入校验功能;
…..

Struts2框架入门

Struts2框架执行流程

  • index.jsp——>HelloServlet——–>hello.jsp web开发流程
  • index.jsp——>HelloAction———>hello.jsp struts2流程

接下来就是开发阶段

  1. 前往Apache Struts开源网站去下载Struts源码及Jar包:http://struts.apache.org/download.cgi
  2. 导入Struts运行必要jar包(8个):
    • struts2-core-2.3.1.1.jar(Struts 2框架的核心类库)
    • xwork-core-2.3.1.1.jar(Command模式框架,WebWork和Struts2都基于xwork )
    • ognl-3.0.3.jar(对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性)
    • freemarker-2.3.19.jar (struts的标签模板库jar文件)
    • commons-logging-1.1.x.jar(Struts 2框架使用这个日志,包来支持Log4J和JDK 1.4+的日志记录)
    • commons-fileupload-1.2.2.jar(文件上传组件,2.1.6版本后需要加入此文件)
    • commons-io-2.0.1.jar(传文件依赖的jar包)
    • commons-lang-2.5.jar:(对java.lang包的增强)
  3. 在web.xml中引入struts核心过滤器:
<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>

.
4. 开发Action

注意:
1. action类,也叫做动作类; 一般继承ActionSupport类
即处理请求的类 (struts中的action类取代之前的servlet)
2. action中的业务方法,处理具体的请求
(1)必须返回String
(2)方法不能有参数

public class HelloAction extends ActionSupport {
    // 处理请求
    public String execute() throws Exception {
        System.out.println("Hello Struts");
        return "succeed";
    }
}

.
5. 配置strurs.xml:

 <package name="default" namespace="/" extends="struts-default">
       <action name="hello" class="cn.itcast.action.HelloAction" method="say">
            <result name="succeed">/hello.jsp</result>
       </action>
 </package>

strurs.xml配置说明:

package   定义一个包。 包作用,管理action。 (通常,一个业务模板用一个包)
name  包的名字; 包名不能重复;
extends 当前包继承自哪个包
    在struts中,包一定要继承struts-default
    struts-default在struts-default.xml中定的包
abstract 表示当前包为抽象包; 抽象包中不能有action的定义,否则运行时期报错,abstract=true  只有当当前的包被其他包继承时候才用!
如:
    <package name="basePackage" extends="struts-default" abstract="true"></package>
    <package name="user" extends="basePackage">
namespace   名称空间,默认为"/"
    作为路径的一部分
    访问路径=  http://localhost:8080/项目/名称空间/ActionName
    action   配置请求路径与Action类的映射关系
    name  请求路径名称
    class 请求处理的aciton类的全名
    method 请求处理方法       
    result
        name  action处理方法返回值 
        type  跳转的结果类型
        标签体中指定跳转的页面

6.在index.jsp中添加连接,测试

<a href="${pageContext.request.contextPath}/hello">第一次使用struts2</a>
注:hello 是strurs.xml中的action中的name的值

部署项目到tomcat,run起来。控制台就会输出‘Hello Struts’。


struts-default.xml, 详解

  1. 目录:struts2-core-2.3.4.1.jar/ struts-default.xml
  2. bean节点指定struts在运行的时候创建的对象类型
  3. 指定struts-default包 【用户写的package(struts.xml)一样要继承此包 】package struts-default 包中定义了:
a.  跳转的结果类型
    dispatcher    转发,不指定默认为转发
    redirect       重定向
    redirectAction  重定向到action资源
    stream        (文件下载的时候用)
b. 定义了所有的拦截器
    定义了32个拦截器!
    为了拦截器引用方便,可以通过定义栈的方式引用拦截器,
    此时如果引用了栈,栈中的拦截器都会被引用!

    defaultStack 默认的栈,其中定义默认要执行的18个拦截器!


c. 默认执行的拦截器栈、默认执行的action
    <default-interceptor-ref name="defaultStack"/>
    <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值