zoukankan      html  css  js  c++  java
  • Struts2

    Struts2

    目录:

    1.1     Struts2概述

    2 struts2的介绍

    1. Struts 是Apache软件基金会赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
    2. Struts 1.x--基于Model2的MVC框架,官方已经不提供支持了
    3. Webwork--分为Xwork1和WebWork2两个项目。
    4. Struts2框架应用的javaee三层结构中的web层框架
    5. Struts2。 Struts 2是Struts1的下一代产品。是在struts1和WebWork的技术基础上进行了合并,全新的Struts 2框架。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品.
    6. 面试题:Struts1和Struts2的区别和联系?

    Struts2与Struts1差别很大,是一个全新的框架,不能理解为Struts1的升级版

    Struts2以webwork为核心,可以理解为WebWork的升级版

    3 Struts2的HelloWorld

    第一步:建web项目

    第二步:导入jar包

      struts-2.3.24.1appsstruts-blank.war(使用压缩软件打开即可)WEB-INFlib下所有的jar包复制到自己创建的web项目的lib下

    第三步:创建action

    第四步:配置action类的访问路径

      a)创建struts2的核心配置文件(核心配置文件的名称和位置必须是固定的:位置必须在src下面,名称必须为struts.xml)

      b)引入dtd约束

      c)配置action

    第五步:在web.xml中配置前端控制器(过滤器)

    复制struts-blank.warWEB-INFweb.xml中filter的配置到自己项目的web.xml中

    1.2     Struts的执行原理

     

    1.3     Struts的源码分析

     过滤器在服务器启动的时候创建,创建过滤器时候先执行init方法

    在init方法中主要加载配置文件

    包含自己创建的配置文件以及struts自带的配置文件

    **struts.xml

    **web.xml

    1.4     Struts2的核心配置文件分析(重点)

    package标签

    1类似于代码包,区别不同的action,要配置action,必须首先写package标签,在package

    里面才能配置action

    2 package标签属性

    (1)   name属性

    name属性值跟功能本身没什么关系的

    在一个配置文件中可以写多个package,name属性值不能相同的

    (2)   extends属性

    属性值是固定的,struts-default

    写了这个属性以后,在package里面配置的类具有action功能

    (3)   namespace属性

    namespace属性值在项目名之后,action访问路径之前

    namespace属性值和action标签里面的name属性值构成访问路径

     

    action标签

    1 action标签配置action访问路径

    2 action标签属性

    (1) name属性

    namespace属性值和action标签里面的name属性值构成访问路径

    在package标签里面可以写多个action标签,但是action的name属性值不能相同的

    (2) class属性

    action全路径

    (3) method属性

    比如在action里面默认执行的方法execute方法,但是在action里面可以写其他方法

    让action中多个方法执行,使用method进行配置

    result标签

    1 根据action的方法返回值,配置到不同的路径里面;每个action下可以有多个result,它们不能重合

    2 result标签属性

    (1) name属性

    和方法返回值一样

    如果没有指定result的name属性,默认值为success

    (2) type属性

    配置如何跳转到指定路径中(转发或重定向)

    type属性默认值 做转发操作

    dispatcher:将请求转发给jsp的result

    redirect: 将请求重定向到另一个URL

    redirectAction:将请求重定向到一个Action

    1.5     Action编写方式

    第一种 创建普通类,这个类不继承任何类,不实现接口

     

    第二种 创建类,实现action接口

     

    第三种 创建类,继承ActionSupport类(推荐使用第三种)

     

    1.6     访问action的方法(重点)

    第一种 使用action标签的method属性,在这个属性里面写执行的action方法名  

    1.创建action,创建多个方法      

    2.使用method配置

    缺陷:action每个方法都需要配置,如果action里面有很多方法需要配置很多action

    第二种 动态调用(*)

    Struts2支持动态方法调用,它指的是一个Action中有多个方法,系统根据表单元素给定的action来访问不同的方法,而不用写多个Action。

    使用动态方法调用前必须设置Struts2允许动态方法调用,它是通过设置

    <constant name="struts.enable.DynamicMethodInvocation“ value="true" />    

    第三种使用通配符方式实现

           在action标签里面name属性,name属性值里面写*号

           *理解:匹配任意内容

           比如访问add方法,*可以匹配到

           比如访问update方法,*可以匹配到

    注意:

    (1)   如果action方法有返回值,在配置文件中没有配置,出现错误

    (2)   在action里面的方法有返回值,如果有返回值时候类型必须是String

    (3)在action里面的方法可以没有返回值,没有返回值时候,在result标签不需要配置

    --把方法写成void

    让返回值为:return NONE或return “none”

    1.7     配置默认action

    1. 当用户请求找不到对应的Action时,系统默认的Action就将处理用户请求

    配置默认Action通过<default-action-ref>元素完成,一般配置在struts.xml文件中<package>元素下

    1.8     常见的常量配置

    默认的常量配置

    位置:struts2-core-2.3.24.1.jarorg.apache.struts2default.properties

    开发者模式

    在开发阶段如果出现错误,会提示更多的错误信息  默认值为false(产品模式)

  • 相关阅读:
    别让删库这种事情再发生
    别让删库这种事情再发生
    oracle目录结构
    oracle 查看启动时间和运行时间
    oracle 执行计划(连接类型)
    oralce执行计划(三)
    跟踪索引是否有用
    AIX系统之启动
    oracle查看核心进程
    oracle执行计划(二)
  • 原文地址:https://www.cnblogs.com/yulibo/p/9250630.html
Copyright © 2011-2022 走看看