Struts2运行机制

前言:

首先感谢中国最专业的java培训班《北京尚学堂》的无私奉献精神,免费提供这么多学习资料。

以及我的偶像马士兵老师,感觉您特帅,技术特别牛,今生若能相见,甚好。谢谢。

struts2的运行机制:

探讨任何的运行机制,一定是这里开始,

http://localhost:8080/Struts2_Instroduction/hello.action)(.action可省略)

客户端在浏览器输入一个URL地址,这个请求通过http协议发送给tomcat,tomcat接收到请求后,查看请求的是哪一个webapplication,(如:Struts2_Instroduction),然后把Struts2_Instroduction交给对应的程序处理,首先读取它的web.xml看它是怎么配置的:

首先在web.xml里配了一个filter,它会过滤所有的URL地址(因为url-partten为/*),所以当我们在地址栏敲http://localhost:8080/Struts2_Instroduction/hello的时候,会被filter-class里的org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter接收到,首先它会找到我们访问的namespace(就是hello前的反斜杠/),然后到struts.xml里去查。(因为namespace是和我们访问的路径一一对应的),当它找到一个namespace="/",它就看我们访问的namespace/后的hello,然后在action里找,如果找到hello,就把里边的result里的jsp的结果反馈。

[(注意我们访问的地址

http://localhost:8080/Struts2_Instroduction/hello)

hello前的反斜杠/就是struts.xml里的<package>标签里的namespace的值):

补充:

namespace决定了action的访问路径,默认为"",可以接受所有路径的action

namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或

者/xxx/yyy/index.action。

namespace最好也用模块来进行命名

action名字和jsp名字不是一回事,我们访问的是action的name,如果把namespace改为namespace="/admin" ,我们访问Hello.jsp的正确路径应为http://localhost:8080/Struts2_Introduction/admin/hello,否则会报错:在项目下没有一个action映射到namespace/

  • There is no Action mapped for      namespace [/] and action name [hello] associated with context path      [/Struts2_Instroduction].
  • 附时序图:

时间: 2024-10-05 04:27:50

Struts2运行机制的相关文章

小学生之浅谈Struts2与struts1的运行机制

Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.(面向对象思想) 2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器. 3.form填充:struts的总控制器ActionServlet在用户提交请求时将数

Struts2架构分析和运行机制

实例分析 1.在浏览器中输入url地址后,会通过http协议发送给tomcat,tomacat收到请求后查看访问的是哪个 webapplication(如下图的Struts2_0100_Introduction),tomcat把Struts2_0100_Introduction交给对应的 webapplication程序去处理. 2.之后会参考Struts2_0100_Introduction下的对应的web.xml文件,将请求交给Struts2Filter去处理 ("/*"为这个项目

深入理解struts的运行机制

在此申明本博文并非原创,原文:http://blog.csdn.net/lenotang/article/details/3336623,本文章是在此文章基础上进行优化.也谈不上优化,只是加上了点自己的想法 jar包准备 为什么会用到这两个jar包呢,因为我需要通过这个jar来解析xml配置文件. 新建项目 流程梳理 struts配置文件 <?xml version="1.0" encoding="UTF-8"?> <struts> <

Spark架构及运行机制

Spark是基于内存计算的大数据并行计算框架.因为其基于内存计算,较Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性.从2009年诞生于AMPLab到现在已经成为Apache顶级开源项目,并成功应用于商业集群中.学习Spark就需要了解其架构及运行机制. Spark架构 Spark架构使用了分布式计算中master-slave模型,master是集群中含有master进程的节点,slave是集群中含有worker进程的节点. master作为整个集群的控制

SSL/TLS协议运行机制的概述

转自:SSL/TLS协议运行机制的概述 作者: 阮一峰 日期: 2014年2月 5日 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. (2) 篡改风险(tampering):第三方可以

java运行机制详细

JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现.编译虚拟机的指令集与编译微处理器的指令集非常类似.Java虚拟机包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收堆和一个存储方法域. Java虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行. 1.为什么要使用Java虚拟机 Java语言的一个非常重要的特点就是与平台的无关性.而使用Java虚拟机是实

【Spark Core】任务运行机制和Task源代码浅析1

引言 上一小节<TaskScheduler源代码与任务提交原理浅析2>介绍了Driver側将Stage进行划分.依据Executor闲置情况分发任务,终于通过DriverActor向executorActor发送任务消息. 我们要了解Executor的运行机制首先要了解Executor在Driver側的注冊过程.这篇文章先了解一下Application和Executor的注冊过程. 1. Task类及其相关 1.1 Task类 Spark将由Executor运行的Task分为ShuffleMa

JavaWeb三大组件——过滤器的运行机制理解

过滤器Filter 文章前言:本文侧重实用和理解. 一.过滤器的概念. lFilter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. 二.过滤器的运行机制. 没有加Filter的web项目运行机制如下: 加上Filter的web运行机制: 由

.NET那点事 (02).NET运行机制

.NET运行机制1 .NET程序被编译成什么形式的代码2 JIT是如何工作的3 简述程序集的加载机制4 如何配置程序集的版本策略 1 .NET程序被编译成什么形式的代码 .NET程序在编写完成后,会经过第一次编译.对于C#而言,无论是VS IDE还是其他任何间接方式,本质上都是执行编译器cse.exe来编译C#代码.在这次编译之后,程序会被编译成中间代码(IL),并且所有必须的元数据和程序集会被一起打包加载到文件头上.编译后的文件是一个标准的PE/COFF应用文件,该文件的最开始的部分包含了PE