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项目中使用;

  • 相关阅读:
    “无法更新EntitySet“*****”,因为它有一个DefiningQuery,而元素中没有支持当前操作的元素”问题的解决方法
    Web.Config全攻略
    C#常用的正则
    Asp.Net MVC2 Json
    webservice+Jquery返回Json格式【原创】
    JAVA线程池介绍以及简单实例
    从程序员到项目经理(17):你不是一个人在战斗思维一换天地宽
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    多表对应更新(跨服务器).sql
    sql导出excel.sql
  • 原文地址:https://www.cnblogs.com/juaner767/p/5520822.html
Copyright © 2011-2022 走看看