struts2环境搭建

举报
俺想吃蜂蜜 发表于 2022/04/13 08:14:44 2022/04/13
【摘要】 内容struts框架实现web应用的基本配置创建基于Struts2框架的HelloWord工程了解struts2 目的熟悉采用Eclipse搭建struts应用的一般流程了解struts.xml配置文件的基本结构及作用掌握Struts2建立web项目的步骤 平台:Eclipse for J2EETomcat服务器(Tomcat 6.x) 框架jar包官方网站下载,放入工程lib库中http...

内容

struts框架实现web应用的基本配置

创建基于Struts2框架的HelloWord工程

了解struts2

目的

熟悉采用Eclipse搭建struts应用的一般流程

了解struts.xml配置文件的基本结构及作用

掌握Struts2建立web项目的步骤

平台

Eclipse for J2EE

Tomcat服务器(Tomcat 6.x)

框架jar包

官方网站下载,放入工程lib库中

http://struts.apache.org

image.png

数据库

MySQL、Navicat

软件下载地址

eclipse:http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/keplersr2

tomcat:http://tomcat.apache.org/

struts2:http://struts.apache.org/

步骤

apps -> 解压war包 ->WEB_INF->lib

image.png

  1. File -> New -> Dynamic Project ->填写Project Name ->勾选web.xml

image.png

  1. 在工程下的WebContent目录下创建视图helloWorld.jsp

image.png

  1. 复制下载struts2包中的struts2-blank lib下内容至当前工程WebContent/WEB-INF/lib中,并且复制struts.xml到src文件夹

image.png
4. 修改配置文件struts.xml ,修改为如下代码

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="helloWorld">
            <result name="success">/HelloWorld.jsp</result>
        </action>
    </package>
</struts>

struts
元素是文件的根元素,所有其他元素都放在 <struts></struts>中。

package
元素用于进行包配置,在 Struts2 框架中,包用于组织 Action 和拦截器等信息,每个包都是由零个或多个拦截器以及 Action 所组成的集合。

action:
定义处理请求URL为login.action的Action

result
定义处理结果字符串和资源之间的映射关系

  1. 修改配置文件web.xml ,修改为如下代码(可复制struts-blank)
<web-app>
  <display-name>HelloWorld</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <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>
</web-app>
  1. 启动Tomcat服务器 ,发布并测试HelloWorld

image.png

工作流程

当初始的请求到达Servlet容器的时候,该请求:

  • 首先要经过Struts2框架的核心控制器StrutsPrepareAndExecuteFilter。
  • 然后核心控制器依次查找ActionMapper来决定这个请求是否调用action。如果ActionMapper决定调用action,StrutsPrepareAndExecuteFilter就把请求的处理控制权委托给ActionProxy。
  • ActionProxy通过Configuration Manager查询Struts2框架的核心配置文件(struts.xml),找到所要调用的Action类。
  • 接下来,ActionProxy创建一个ActionInvocation实例,该实例负责命令模式的实现,包括在激活action本身之前调用配置的任意拦截器。
  • 在action执行完成之后,ActionInvocation实例负责根据action的返回结果码在struts.xml配置文件中查找要输出的结果(Result)。该结果通常是JSP或者FreeMarker模板,也可能是action。在输出的时候,模板可以使用框架提供的Struts2标签。
  • 然后,为action配置的拦截器将被再次执行(顺序和action被调用之前执行顺序相反)。
  • 最后,服务器的响应将通过web.xml文件中配置的Struts2框架核心控制器返回。

image.png
总结来说就是:

  • 发起请求
  • 服务器接收请求并交给struts2的核心控制器
  • 根据请求的url查看struts.xml中的namespace+actionname是否存在
  • 执行action所对应类的对应方法
  • 根据方法的返回结果到action的结果集中进行匹配
  • 响应结果
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。