zoukankan      html  css  js  c++  java
  • 1.struts2原理和入门程序

    Struts2是一个MVC的Web应用框架,是在Struts1和WebWork发展起来的,以WebWork为核心,采取拦截器机制来处理用户请求。

      原理图:

      

      分析步骤:   

        1.用户发送一个请求

        2.请求的目的肯定是去找Action,只是先经过一个过滤器

        3.通过ActionMapper去查找Action

        4.找到以后把请求委托给ActionProxy去处理

        5.ActionProxy又通过ConfigurationManager去读取Struts.xml的配置文件

        6.取到配置文件后,说明运行环境已经准备就绪,就交给Action的执行者(Action Invocation去执行)

        7.在执行的过程中会在前后都加上一系列的拦截器

        8.Action执行成功,返回一个结果(字符串)

        9.根据这个结果派发页面

      入门程序:

        新建web工程

        导入jar

        配置过滤器(web.xml中配置)

        编写Action

        Struts2的配置

      

        配置过滤器(web.xml中配置)这里你可以配置下面这个也可以配置StrutsPrepareAndExecuteFilter

    <!-- 配置过滤器 -->
        <filter>
            <filter-name>hello</filter-name>
            <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>hello</filter-name>
            <!-- 
                url的配置有两种:
                /* :所有的url都要经过这个过滤器
                *.action:只有后缀是.action才会经过
             -->
            <url-pattern>/*</url-pattern>
        </filter-mapping>

        编写Action

    public class HelloWorldAction {    
        public String execute() {
            return"success";
        }
    }

        编写struts2的配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
        <!-- 
            name:就是名字,随便取的
            extends:继承一个父包,可以拥有父包的配置
            namespace:影响你的请求路径
         -->
        <package name="hello"  extends="struts-default" namespace="/">
            <!-- 
                name:访问路径
                class:就是Action的路径(包名+类名)
                method:指定访问该类的某个方法:不写的话:默认是execute
             -->
            <action name="hello" class="com.etc.action.HelloWorldAction" >
                <!-- 
                    name:就是你action执行结束后的返回的字符串 
                -->
                <result name="success">/index.jsp</result>
            </action>
        </package>    
    </struts>

    Action中的execute方法是默认的:

      当你在配置文件中不指定方法的时候,会默认调用execute

  • 相关阅读:
    119. Pascal's Triangle II
    118. Pascal's Triangle
    112. Path Sum
    111. Minimum Depth of Binary Tree
    110. Balanced Binary Tree
    108. Convert Sorted Array to Binary Search Tree
    88. Merge Sorted Array
    83. Remove Duplicates from Sorted List
    70. Climbing Stairs
    陌陌面试经历
  • 原文地址:https://www.cnblogs.com/huaixiaoz/p/5899021.html
Copyright © 2011-2022 走看看