`
weigang.gao
  • 浏览: 488270 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Introduction

 
阅读更多

1.Struts背后的运行机制

a.一个客户端在浏览器地址栏中输入了一个URL地址:http://localhost:8080/struts2/hell,当他输入了这个URL地址之后,这个URL地址的请求会通过HTTP协议发送给我们的Tomcat,Tomcat收到这个请求之后,它看客户请求的是哪个Web Application,然后找到客户请求的Web Application(eg:struts2_0100_introduction),再把该Web Application交给对应的程序处理,既然是这个Web Application, Tomcat必然要读这个Web Application对应的web.xml文件,来看它是怎么配置的,这时候Tomcat就会发现一个配置,这个配置就是<filter>和<filter-mapping>,具体如下:

 

<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>
     <!--对于Struts2,这里永远用(/*)-->
     <url-pattern>/*</url-pattern>
</filter-mapping>

 

 

b.在web.xml中配置了一个filter,这个filter会过滤所有URL地址(/*),所以我们在浏览器地址栏中输入:http://localhost:8080/struts2/hell 时,这个地址就是被web.xml配置文件中org.apache.struts2.

dispatcher.ng.filter.StrutsPrepareAndExecuteFilter产生的对象接受到,它接受到后,①首先看你的struts-config.xml文件中的namespace配置,即和http://localhost:8080/struts2/hell 中的struts2后面的"/"相对应。

②接下来tomcat就会在struts-config.xml中查namespace="/"里面的是不是有一个名为hell的action,如果有,它就会找里面<result>是谁;

一个简单的struts2工程运行机制:


 
 

 

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

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

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

 

3.修改了struts-config.xml后不能立刻给我反馈,需要重启服务器才能访问成功,怎样才能不需要重启服务器,就能由反馈呢?

在struts-config.xml中配置常量<constant name="struts.devMode" value="true" />

 

4.package作用:Java中package的作用是给我们的类打个包,避免类重名的情况。

在struts2中 package的作用一样,eg:我有2个action,一个叫index,另一个也叫index,怎么给它们作区分呢?可以把它们放到不同的package(包)中

 

5.凡是name为success的result(<result name="success" ></reuslt>),name都可以省略不写,即<result name="success" >/hell.jsp</reuslt>等价于<result>/hell.jsp</reuslt>

 

6.在没找到精确的package的情况下,全部交由namespace=“”的package来处理,也就是说namespace=""的package包括了其它package无法处理的东西;

你找一个action的时候,先到对应的namespace中查找,在对应的namespace中没找到,才会到namespace为空(即namespace=“”)的package中找action,如果都没找到就会报错。

 

7.当你建完JSP文件时,它的默认的编码是ISO-8859-1,你要想改它默认编码的话,是在什么地方?

Window / preferences / Web  /JSP file  修改 Encoding为UTF-8,以后建立的JSP页面都为UTF-8了

 

8.struts2每次访问必定new一个新的action,而struts1是每次访问可能是同一个action。

 

 

 

  • 大小: 50.5 KB
分享到:
评论

相关推荐

    Introduction to Linear Algebra

    从网上看到Introduction to Linear Algebra这本书(Algebra_Gilbert Strang),介绍的清晰易懂且很到位。就搜集了一些。包括第三版、第四版和讲课笔记。听说第三版比较经典,暂时只上传了第三版和笔记。虽然是英文的...

    Introduction to Computing Systems

    Introduction to Computing Systems from Bits and Gates to C and Beyond.pdf 2nd Edition [English] 本书是计算机系统概论的英文原版,计算机科学的经典基础教材。全书以自底向上方法帮助学生理解计算机系统的原理...

    Hack Audio:An Introduction to Computer Programming and DSP in Matlab.rar

    Hack Audio:An Introduction to Computer Programming and Digital Signal Processing in Matlab 2019 Hack Audio:An Introduction to Computer Programming and DSP in Matlab.part1.rar (15 MB, 下载次数: 237...

    Introduction to Space-Time wireless Communications

    This book is an accessible introduction to the theory of space-time wireless communications. The authors discuss the basics of space-time propagation, space-time channels, channel capacity, spatial ...

    An_introduction_to_computational_fluid_dynamics.pdf

    Basic introduction to computational fluid dynamics, using the finite volume method. Table of Contents Preface Acknowledgements 1 Introduction 1 2 Conservation Laws of Fluid Motion and ...

    An Introduction to Manifolds, 2nd edition by Loring W. Tu.

    标题《An Introduction to Manifolds, 2nd edition by Loring W. Tu》和描述《An Introduction to Manifolds, by Loring W. Tu》共同指向了数学领域中微分几何的核心概念——流形。在现代数学及物理学中,流形是一个...

    An Introduction to Statistics with Python(Springer,2016)

    This textbook provides an introduction to the free software Python and its use for statistical data analysis. It covers common statistical tests for continuous, discrete and categorical data, as well ...

    Introduction to Modern Cryptography

    首先,“Introduction to Modern Cryptography”是该文件的标题,其对应的中文是“现代密码学介绍”,表明这是一本关于现代密码学基础和原理的书籍。作者是任伟,从2010年版本来看,本书无疑是一本深入浅出介绍现代...

    优化理论An Introduction to Optimization 中文版

    《优化理论:An Introduction to Optimization 中文版》是一本经典书籍,主要探讨了数学优化领域的核心概念和技术。本书分为两大部分,第一部分为数学回顾,介绍了必要的数学基础知识;第二部分深入讨论无约束优化...

    An Introduction to Statistical Learning

    1. 书籍标题《An Introduction to Statistical Learning》(统计学习导论)是《The Element of Statistical Learning》(统计学习基础)一书的入门版本,这意味着它为读者提供了该领域的基础知识和初步理解。...

    Introduction to Robotics 机器人学导论 第三版 原书 英文版

    本书系统讲解了机器人学的理论知识,主要内容包括:机器人操作臂的几何性质、引起操作臂运动的力和力矩、与操作臂... 本资源是《机器人学导论》Introduction to robotics mechanics and control 原书第三版 英文版。

    A Classical Introduction To Modern Number Theory

    《A Classical Introduction to Modern Number Theory》(《现代数论的经典入门》)是由已故的肯尼斯·爱尔兰(Kenneth Ireland)和迈克尔·罗森(Michael Rosen)共同著作的数论入门书籍。数论,作为数学的一个分支...

    Introduction to Lens Design

    Introduction to Lens Design

    Introduction to Algorithms Third Edition

    This book provides a comprehensive introduction to the modern study of computer algorithms. It presents many algorithms and covers them in considerable depth, yet makes their design and analysis ...

    Introduction to Java programming 8th

    become proficient Java programmers A brief version Introduction to Java Programming Brief Version Eighth Edition is available for a first course on programming commonly known as CS1 The brief version ...

    An Introduction to Data Science

    An Introduction to Data Science by Jeffrey S. Saltz and Jeffrey M. Stanton is an easy-to-read, gentle introduction for people with a wide range of backgrounds into the world of data science. Needing ...

    Density_Functional_Theory_A_Practical_Introduction

    Density Functional Theory: A Practical Introduction offers a concise, easy-to-follow introduction to the key concepts and practical applications of DFT, focusing on plane-wave DFT. The authors have ...

    中文翻译Introduction to Linear Algebra, 5th Edition 2.5节

    中文翻译Introduction to Linear Algebra, 5th Edition 2.5节1 若方阵 A 有逆,则既有 A−1A = I 又有 AA−1 = I。 2 检验可逆性的算法是消元法:A 必须有 n 个(非零)主元。3 可逆性的代数检验是 A 的行列式:det ...

Global site tag (gtag.js) - Google Analytics