zoukankan      html  css  js  c++  java
  • 基于MVC模式的应用框架之struts

    1.struts开发步骤

    • 引入struts的jar包;
    • 在web.xml中引入struts的核心功能,配置struts核心过滤器;(如果项目中用到了其他过滤器,要放在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,业务方法必须返回String类型,方法不能有参数;
    • 在src/struts.xml中配置Action;
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
            "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <package name="hello" extends="struts-default" >
            <action name="hello" class="com.juaner.action.HelloAction" method="hello">
                <result name="success">/index.jsp</result>
            </action>
        </package>
    </struts>

    2.struts的执行流程

    服务器启动

    • 加载项目的web.xml;
    • 创建struts核心过滤器对象,并执行其init()方法,依次读取struts-default.xml、struts-plugin.xml、struts.xml配置文件;

    访问

    • 用户访问Action,服务器根据访问URL找对应的Action类,创建Action实例;
    • 执行struts拦截器;
    • 以后每次访问都创建Action的实例,然后执行拦截器;

    3.struts-default.xml详解

    • bean节点制定了struts在运行时创建的节点类型;

    • 指定struts-default包,用户写的struts.xml中的package必须要继承此包,

      其中包括:

    • 跳转的结果类型

    dispathcer:默认值

    redirect:重定向

    redirectAction:重定向到Action资源

    stream:文件下载时使用

    • 定义了32个拦截器,为了引用方便,可以通过定义栈的方式引用拦截器;
    • 默认执行的拦截器(18个),按顺序执行;
    • 默认值型的Action;

    4.拦截器VS过滤器

      拦截器和过滤器都起到拦截资源的作用。

      过滤器:

        拦截所有资源:jsp、servlet、css、js等;

        在所有servlet项目中都可以使用;

      拦截器:

        只能拦截Action请求;

        是struts的概念,只能在struts项目中使用;

  • 相关阅读:
    C++之友元机制(友元函数和友元类)
    C++之全局函数和成员函数互相转换
    C++之面向对象初探----对象管理模型(关键是this指针)
    C++之const类成员变量,const成员函数
    C++之static类成员,static类成员函数
    c++之函数值传递和引用传递解析----关键在于理解函数return的实现机制(内存分配)
    C++之new和delete
    C++之构造函数、参数列表、析构函数
    C++之匿名对象解析
    C结构体、C++结构体、C++类的区别
  • 原文地址:https://www.cnblogs.com/juaner767/p/5520822.html
Copyright © 2011-2022 走看看