Struts2简介第一个Struts2Demo(一)

struts是Servlet封装,目的是为了提高开发效率

1. Struts开发步骤

1、 web项目引入Struts-jar包(核心包有8个fileupload/io/lang3/freemarker/javassist/ognl/struts2-core/xwork-core)
2、 web.xml中,引入Struts的核心功能,配置过滤器
3、 开发action
4、 配置action,在src/struts.xml中配置(struts.xml可以在Struts源码中找到)

Demo HelloStruts

引jar包,在web.xml中配置Struts2核心过滤器
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>

action开发,用一个普通类继承ActionSupport

/**
 * 开发Action 处理请求
 * @author wsk
 *
 */
public class HelloAction extends ActionSupport{

    public HelloAction(){
        System.out.println("创建HelloAction");
    }

    public String execute() throws Exception {
        System.out.println("访问到了HelloAction。。正在处理请求");
        System.out.println("调用Servlet");
        return "success";
    }

}

配置文件struts.xml

<!-- 
package 包配置:通常一个业务模板用一个包
    name 包的名字,包名不能重复
    extends 当前包继承自哪个包
        在Struts中所有包一定要继承struts-default
        struts-default在struts-default.xml中 
    abstract 表示当前包为一个抽象包,抽象包中action不能被访问
    namespace  名称空间,默认为/,作为路径的一部分
      访问路径=http://localhost:8088/项目/名称空间/actionname
     action  配置请求路径与Action类的映射关系
         name 请求路径名称
         class 请求处理的action类全名
         method 请求处理的方法
      result  
          name action处理方法返回值
          type 跳转结果类型
          --!>
 <package name="xxs" extends="struts-default">
        <!-- 第一个helloworld action -->
        <action name="hello" class="com.wsk.hello_struts.HelloAction" method="execute">
            <result name="success">/hello.jsp</result>
        </action>
 </package>

2. Struts2执行流程

服务器启动时:

1、加载项目web.xml
2、创建Struts2核心过滤器对象,StrutsPrepareAndExecuteFilter,并执行filter的init方法,加载相关配置文件。

struts-default.xml 核心功能的初始化
struts-plugin.xml Struts相关插件
struts.xml 用户编写配置文件

访问

3、用户访问Action,服务器根据访问路径名称,找对应的action配置,创建Action对象
4、后边每次访问都会创建Action实例

Struts-default.xml

内容:
1、bean节点指定Struts在运行的时候创建的对象类型
2、指定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" />

拦截器和过滤器区别

拦截类型区别

拦截器是Struts2里边的,主要用于拦截Action资源的访问,只能在Struts中使用
过滤器是servlet中,可以拦截(.jsp/servlet/css/js/img)

创建执行时间区别

拦截器是在web服务器启动时创建过Struts核心滤器初始化时加载,在用户访问Action时调用
过滤器是web服务器启动时创建执行初始化方法init,在用户访问时调用doFilter方法执行,在web服务器关闭时销毁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值