一、配置过程

1.在web.xml中配置过滤器

  <filter>
<filter-name>StrutsPrepareAndExecuteFilter</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>StrutsPrepareAndExecuteFilter</filter-name>
<url-pattern>/*</url-pattern>

 

2.导入struts2框架包

3.在src目录下创建struts.xml(必须在src下创建)

文件开头(dtd文件版本跟导入的struts2的基本一致)

<?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">

 

4.在Preference中添加struts-2.3文件,并加入key值,key值为struts.xml文件开头“

-//Apache Software Foundation//DTD Struts Configuration 2.3//EN

”

二、struts2基本流程

1.请求

   	测试有命名空间的hello world:<br>
<a href="${pageContext.request.contextPath}/base/HelloWorldAction.action">有命名空间</a><br> 测试没有命名空间的hello world:<br>
<a href="${pageContext.request.contextPath }/HelloWorldAction.action">没有命名空间</a><br>

请求对应图

2.通过web.xml文件进行过滤,跳转至struts.xml配置文件中

3.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"> <!-- 导入dtd文件 -->
<struts>
<!-- package
1.为包,能方便进行action管理
2.属性
name:
代表包的名称
主要用于继承
name的名称是唯一的
namespace:
命名空间
在客户端访问action时使用,也就是说在url中使用
如果没有命名空间
http://localhost:8080/struts2/a.action
http://localhost:8080/struts2/b.action
上面写的url没有模块的概念,但是如果有命名空间,就有模块的概念
如果namespace有值,则在result中,会把命名空间加入到响应的路径中,如果是重定向,那么就会重定向到该命名空间下的action
extends
配置文件中的继承
-->
<package name="helloworld" namespace="/base" extends="struts-default">
<action name="HelloWorldAction" class="com.struts2.action.HelloWorldAction">
<!--
result
struts2会根据result进行转发或者重定向
属性
name
为result名称
属性的值和action中execute方法的返回值一致
如果不写name属性,则会默认为name的值为success
type
代表返回方式
选择重定向还是转发,还可以重定向到action
如果type没有设定,则为默认值。这个默认值可以从struts-default.xml中得出结论
<result-type name="dispatcher"
class="org.apache.struts2.dispatcher.ServletDispatcherResult"
default="true"/>
-->
<result>success.jsp</result>
</action>
</package>
</struts>

 

package com.struts2.action;

import com.opensymphony.xwork2.Action;

public class HelloWorldAction implements Action {

	public String execute() throws Exception {
System.out.println("Hello World");
return SUCCESS;
} }

  

会寻找与请求对应的action,并在result中做出相对应的反馈,取得反馈的值后会经过两个struts2中的2个框架类进行转发(内部也是servlet),最后跳转到相应的页面

总流程为:

  

struts2 基本流程的更多相关文章

  1. Struts2学习第一天——struts2基本流程与配置

    struts2框架 什么是框架,框架有什么用? 框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提高开发效率. 学习框架 ,清楚的知道框架能做什么? 还有哪些工作需要自己编码实 ...

  2. Struts2 核心流程

    1.Struts2架构图  这是Struts2官方站点提供的Struts 2 的整体结构.  执行流程图 2.Struts2部分类介绍  这部分从Struts2参考文档中翻译就可以了. ActionM ...

  3. 【跟我一步一步学Struts2】——Struts2工作流程

    上一篇博客通过一个简单的小样例对struts2的流程有一个简单的了解,这篇博客继续. 当用户要登陆某一个站点.输入username,password,点击登陆就会触发以下一系列过程 : 1.请求过来之 ...

  4. Struts2 运行流程

    Struts2运行流程 1.在web.xml中使用Struts的核心过滤器拦截所有请求. <filter> <filter-name>struts2</filter-na ...

  5. springmvc与struts2执行流程比较

    之前写过一篇struts2的执行流程的文章了,这里对struts2的流程就不做过多的分析,这篇文章主要分析spring-mvc的执行流程以 及struts2与spring-mvc的差别. 1.stru ...

  6. struts2执行流程和架构图

    一.struts2执行流程 二.架构图 只需要编写黄色部分的代码:

  7. 8、Struts2 运行流程分析

    1.流程分析: 请求发送给 StrutsPrepareAndExecuteFilter StrutsPrepareAndExecuteFilter 询问 ActionMapper: 该请求是否是一个 ...

  8. struts2工作流程

    struts2的框架结构图 工作流程 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action ...

  9. struts2视频学习笔记 09-10(struts2处理流程,指定多个struts配置文件)

    课时9 Struts2的处理流程 StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url- ...

随机推荐

  1. Oracle Inventory Management Application Program Interface ( APIs) (Doc ID 729998.1)

    In this Document Goal Solution References APPLIES TO: Oracle Inventory Management - Version 12.0.0 a ...

  2. [C#]安装WindowsService的关键步骤

    使用.Net编写好了WindowsService以后,不安装到系统里就没有任何作用. [添加Installer] 在服务的设计器画面,属性页面里,选择[Add Installer]链接. 如此便会生成 ...

  3. Centos 下部署tomcat多实例

    基础环境及JDK就不多说了,下面的目录结构以如下为准: 根目录-apps 根目录-apps--tomcat 根目录-apps--ins1 根目录-apps--ins2 ================ ...

  4. BFC开启条件

    当元素CSS属性设置了下列之一时,即可创建一个BFC: float:left|right position:absolute|fixed display: table-cell|table-capti ...

  5. [Erlang22]如何按规则位数输出数字

      需求:把一个数字指定长度输出 例如:  1 00000001 12 00000012 1203 00001203 123456789 123456789 1234567 01234567 方法一: ...

  6. Linux下.Net Core+Nginx环境搭建小白教程

    前言 对于接触.Net Core的我们来说之前从未接触过Linux,出于资源和性能及成本的考虑我们可能要将我们的环境搬到Linux下,这对于我们从未接触过Linux的童鞋们来说很棘手,那么我今天将带你 ...

  7. Fiddler4无法抓取HttpWebRequest本地请求的解决办法

    网上很多解决案例是如下方代码设置代理,但在我的Fiddler4环境下无效,后寻得官方处理方法证实与代理无关. HttpWebRequest request= WebRequest.Create(&qu ...

  8. AGC007C Pushing Balls

    题目链接 题意:\(N\)个坑,\(N+1\)个球,相间分布,距离为以\(d_1\)为首项,\(x\)为公差的等差数列.对于每次操作,随机选择一个未入坑的球,随机选择向左或向右,掉入第一个没有球的坑, ...

  9. 如何获取token值

    登录的时候需要拿到token值,需要跟后端配合才能拿到 官方说明: https://developers.weixin.qq.com/miniprogram/dev/api/api-login.htm ...

  10. BZOJ 1248--游乐园(DFS&贪心)

    1248: 游乐园Pleasure Ground Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 6  Solved ...