Struts2 核心剖析

news/2024/7/4 1:41:42 标签: struts, action, class, include, session, 框架
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

 1.核心控制器  是FilterDispacher
2.Struts框架的大致处理步骤:
  用户提交请教,请教被过滤器截取并处理最终到达核心控制器FilterDispatcher.询问ActionMapper找寻class="tags" href="/tags/ACTION.html" title=action>action来处理这个请求,如果发现就发送给ActionProxy.执行完毕之后返回结果视图.
3.关于常量配置
有几种方式,分别在class="tags" href="/tags/STRUTS.html" title=struts>struts.xml  class="tags" href="/tags/STRUTS.html" title=struts>struts.properties 以及 web.xml中配置,建议配置在class="tags" href="/tags/STRUTS.html" title=struts>struts.properties中配置,这种采用键值对配置的模式最直观也最方便管理.
4.关于Struts2在开启服务时加载顺序及配置常量顺序
加载顺序:class="tags" href="/tags/STRUTS.html" title=struts>struts-default.xml   到   class="tags" href="/tags/STRUTS.html" title=struts>struts-plugin.xml   到   class="tags" href="/tags/STRUTS.html" title=struts>struts.xml   到   class="tags" href="/tags/STRUTS.html" title=struts>struts.properties  到   web.xml
配置常量顺序则反过来
5.关于Action的命名空间.
当在指定命名空间中找不到所制定的class="tags" href="/tags/ACTION.html" title=action>action时,会在默认的命名空间(也就是没有定义的命名空间,)里找对应的class="tags" href="/tags/ACTION.html" title=action>action,如果没有发现就抛出异常并报错.
6.拦截器的作用
拦截器的作用是在执行class="tags" href="/tags/ACTION.html" title=action>action处理用户请教的  之前   或    之后   执行拦截器来进行某些操作.
无论是定义拦截器还是拦截器栈,最好是定义在result之后
7.关于通配符
为了日后的维护,最好限制使用通配符.采用include方式解决这些问题
8.servlet API
ActionContext context  =  ActionContext.getContext();
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResoinse response = ServleActionContext.getResponse();
HttpSession session = request.getSession();
9.在配置Action元素中,如果不指定class元素,会自动使用ActionSupport类来处理请求,并自动返回SUCCESS;
10.在执行中的Action在class="tags" href="/tags/STRUTS.html" title=struts>struts.xml中假如没有定义.会通过全局配置的一个定义...(需要组织语言完善)
11.Action动态加载方法最好使用xml配置的方式
<class="tags" href="/tags/ACTION.html" title=action>action name="xxx" class="xxxx" method="ssss" >
12.Result  级别上 局部的Result 大于全局的result
13.Result默认的type就是Dispatcher  默认的name就是 success
14.属性驱动的好处在于灵活,但增加了耦合度
15.模型驱动的好处在于降低耦合度,增加独立性,但必须实现modelDriver接口.
16.定义全局的异常时必须定义在全局result之后


http://www.niftyadmin.cn/n/1052562.html

相关文章

【转载】打开Silverlight设计器发生了未经处理的异常完美解决方案

今天在打开Silverlight程序的设计器时&#xff0c;报“发生了未经处理的异常”&#xff0c;System.NullReferenceException 未将对象引用设置到对象的实例。 因为装了Silverlight5 Developer Rumtime 后&#xff0c;过了几天就出现了这样打不开Silverlight的情况&#xff0c;如…

钉钉开发入门,微应用识别用户身份,获取用户免登授权码code,获取用户userid,获取用户详细信息...

最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆; 就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所以自己记录一下; 实现这个要求,有好几种方式,使用ISV方式相对来说比较简…

mongodb MapReduce

MapReduce应该算是MongoDB操作中比较复杂的了&#xff0c;自己开始理解的时候还是动了动脑子的&#xff0c;所以记录在此&#xff01;命令语法&#xff1a;详细看 ? db.runCommand({ mapreduce : 字符串&#xff0c;集合名,map : 函数,见下文reduce : 函数&#xff0c;见下文[…

struts中设置和获得一个列表框

当select的value和label属性都是可变的&#xff0c;想在页面中设置并传到后台&#xff0c;或从后台读取某属性在页面上显示。怎么做呢&#xff1f;现在从下面代码就可以满足&#xff1a; 使用<html:options />. label 和value 的Collection 可以在action中初始化 代码&a…

Java常见问题收集

转载处&#xff1a;https://blog.csdn.net/jackfrued/article/details/44921941 1、面向对象的特征有哪些方面&#xff1f; 答&#xff1a;面向对象的特征主要有以下几个方面&#xff1a; - 抽象&#xff1a;抽象是将一类对象的共同特征总结出来构造类的过程&#xff0c;包括数…

UMD和ECMAScript模块

一、UMD&#xff1a;AMD 和CommonJS的糅合 前面花了很长的篇幅介绍了两大类模块规范&#xff0c;CommonJS(Modules/Modules/Wrappings)及AMD。 我们知道Modules/Wrappings是出于对Node.js模块格式的偏好而包装下使其在浏览器中得以实现。 而Modules/Wrappings的格式通过某些工具…

Git基础与Github的连接

Git基础与Github的连接 基础部分 安装与配置 安装&#xff1a;apt install git 一句命令搞定 配置个人用户信息与电子邮件 $ git config --global user.name "xluos" //提交用户名 $ git config --global user.email emailxluos.com //如果要连接github这…

独立显卡和集成显卡区别

集成显卡和独立显卡从cpu占用率和内存的使用率等诸多方面都有区别,了解它们之间的不同和优缺点,有助于我们选购显卡时有的放矢。它们的区别主要有以下几点: 一&#xff1a;CPU占用率 独立显卡有自带的GPU&#xff0c;大量图像处理无需由CPU来做&#xff0c;节省CPU时间&#xf…