Struts2----配置、运行机制

简单来说,Struts2的作用就是把请求和结果分开,即提高可扩展性,使得更加灵活。

一、struts2的基本配置

新建一个web project项目,下载struts2,配置Strusts2环境。
  • 1配置struts.xml文件。
    将struts-2.1.6目录中的apps中的struts2-blank.war文件解压,打开WEB-INF---------classes--------struts.xml文件拷贝到新建项目的src目录下。

【struts-2.1.6\apps\struts2-blank-2.1.6-\WEB-INF\classes\struts.xml】

  • 2配置struts2所需的jar包。
    将【struts-2.1.6\apps\struts2-blank-2.1.6-\WEB-INF\lib】下的jar包拷贝到 项目的WebRoot-----WEB-INF
    ----lib目录下。
    Struts2----配置、运行机制_第1张图片
  • 3配置web.xml文件。
    将示例web.xml文件中关于struts2的filter标签配置复制到项目的web.xml中。
Struts2----配置、运行机制_第2张图片
1.源码和javadoc的设置:
【可查阅struts2源码,按F1可查阅javadoc】
    在jar包上右键---properties---Java Source Attachment/Java Doc Location:

    【struts2的Java Source源码路径为:
         \struts-2.3.16.1\src\core\src\main\java
      struts2的Java Doc路径为:
          \struts-2.3.16.1\docs\struts2-core\apidocs】
2.xml文件自动提示设置
Window----Preferences----输入catalog----XML catalog----Add---设置dtd文档location、keyType和key

【Location:选择dtd文档位置。
      解压 struts-2.3.16.1\lib\ 目录下的struts2-core-2.3.16.1.jar文件,选择struts-2.0.dtd文件位置。
  Key Type:URL
  Key:输入dtd的URL地址,在struts.xml文件的上部的DOCTYPE标签中定义的   "http://struts.apache.org/dtds/struts-2.0.dtd"】
  • 4配置action。
    简化struts.xml中package标签中的内容。
Struts2----配置、运行机制_第3张图片
标签:struts.devMode为true时,为开发模式,可更改action的name且不用重启tomcat
标签:包名,设置namespace。类似java项目中的包名,起到防止action重名的作用。
标签:设置action的name,设置相应result路径。

二、Struts2运行机制

Struts2的作用:把请求和视图分开,增强项目的可扩展性。

struts2的原理

工作流程:

1、客户端浏览器发出HTTP请求.
2、根据web.xml配置,该请求被FilterDispatcher接收
3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面
6、返回HTTP响应到客户端浏览器


Struts2----配置、运行机制_第4张图片

namespace:action访问路径

用户自定义Action

1.IndexAction中有execute()方法,返回“success”字符串,struts.xml的action标签中定义class。

当struts2的filter读到struts.xml中的action是一个class时,每次访问struts2都会调用createMessage()方法,new一个新的action的class对象,调用execute()方法,不会出现线程同步的问题。【而struts1每次访问时会访问可能用的是同一个对象,会出现线程同步的问题。】

2.当action中不配置class时,可以使IndexAction继承Action接口,实现execute()方法,返回SUCCESS常量。
3.当action中不配置class时,可以使IndexAction继承ActionSupport类,重写execute方法,返回SUCCESS常量。
------------------------------日常开发使用第三种方法。

路径问题

Struts2----配置、运行机制_第5张图片

Action--method

Action执行的时候并不一定要执行execute()方法
(1)可以在struts.xml配置文件中配置Action的时候用“method=要执行的方法”,并在对应的Action中实现该方法。

Struts2----配置、运行机制_第6张图片
Struts2----配置、运行机制_第7张图片

(2)也可以在url地址中动态指定(动态方法调用DMI)【推荐】
不指定method,在调用时通过在action后添加“!方法名”的方式调用Action中的方法。

Struts2----配置、运行机制_第8张图片

Action---通配符

使用通配符,可将配置量降到最低。但一定要遵守“约定优于配置”的原则。

通过Studentadd访问action


在action配置中没有对应的Studentadd的action,但有Student 。result中{1}与表示的内容相同。
Struts2----配置、运行机制_第9张图片

你可能感兴趣的:(Struts2----配置、运行机制)