116.说下Struts的设计模式

MVC模式:
web应用程序启动时
就会加载并初始化ActionServler。
用户提交表单时,
一个配置好的ActionForm对象被创建,
并被填入表单相应的数据,
ActionServler根据Struts-config.xml文件
配置好的设置决定是否需要表单验证,
如果需要就调用ActionForm的Validate()
验证后选择将请求发送到哪个Action,
如果Action不存在,
ActionServlet会先创建这个对象,
然后调用Action的execute()方法。
Execute()从ActionForm对象中获取数据,
完成业务逻辑,
返回一个ActionForward对象,
ActionServlet再把客户请求
转发给ActionForward对象指定的jsp组件,
ActionForward对象指定的jsp生
成动态的网页,返回给客户。

117.拦截器和过滤器的区别?

、拦截器是基于java反射机制的,
而过滤器是基于函数回调的。 、过滤器依赖于servlet容器,
而拦截器不依赖于servlet容器。 、拦截器只能对Action请求起作用,
而过滤器则可以对几乎所有请求起作用。 、拦截器可以访问Action上下文、
值栈里的对象,而过滤器不能。 、在Action的生命周期中,
拦截器可以多次调用,
而过滤器只能在容器初始化时被调用一次。

118.struts2框架的核心控制器是什么?它有什么作用?

)Struts2框架的核心控制器是
StrutsPrepareAndExecuteFilter。 )作用: 负责拦截由<url-pattern>/*</url-pattern>
指定的所有用户请求,
当用户请求到达时,
该Filter会过滤用户的请求。
默认情况下,
如果用户请求的路径 不带后缀或者后缀以.action结尾,
这时请求将被转入struts2框架处理,
否则struts2框架将略过该请求的处理。 可以通过常量"struts.action.extension"修改action的后缀,
如:
<constant name="struts.action.extension" value="do"/>
如果用户需要指定多个请求后缀,
则多个后缀之间以英文逗号(,)隔开。
<constant name="struts.action.extension" value="do,go"/>

119.struts2如何访问HttpServletRequest、HttpSession、ServletContext三个域对象?

方案一:  

HttpServletRequest request =
ServletActionContext.getRequest(); HttpServletResponse response =
ServletActionContext.getResponse(); HttpSession session=
request.getSession(); ServletContext servletContext=
ServletActionContext.getServletContext(); 方案二: 类 implements ServletRequestAware,ServletResponseAware,SessionAware,ServletContextAware 注意:框架自动传入对应的域对象

120.ActionContext、ServletContext、pageContext的区别?

)ActionContext是当前的Action的上下文环境,
通过ActionContext可以
获取到request、session、ServletContext等
与Action有关的对象的引用; )ServletContext是域对象,
一个web应用中只有一个ServletContext,
生命周期伴随整个web应用; )pageContext是JSP中的最重要的一个内置对象,
可以通过pageContext获取其他域对象的应用,
同时它是一个域对象,
作用范围只针对当前页面,
当前页面结束时,
pageContext销毁, 生命周期是JSP四个域对象中最小的。

最新文章

  1. GUI基础学习
  2. 多对多关系&lt;EntityFramework6.0&gt;
  3. CodeForces 544A
  4. 【转】CSS3动画帧数科学计算法
  5. idea首次提交项目
  6. SmartZoneOCR识别控件免费下载地址
  7. 20169210《Linux内核原理与分析》第四周作业
  8. var, object, dynamic的区别以及使用(转载)
  9. 基于CSS的个人网页
  10. linux tcp重传多会导致软中断在各个核很不均匀么?
  11. JDBC常见面试题
  12. Dynamics 365使用Execute Multiple Request删除系统作业实体记录
  13. 格式时间转UTC时间
  14. mysql5.7安装(正确安装)实战
  15. shell文件测试,菜单表示思想
  16. FileInputFormat看这一段源码
  17. eclipse mars 4.5.1 自定义工具栏
  18. navicat安装步骤
  19. golang interface接口
  20. 粗体EditorGUI

热门文章

  1. 1018 Public Bike Management
  2. 设置navigation的title
  3. C/C++ 的宏中#和##的作用和展开
  4. git 命令(基础篇)的本质理解
  5. 关于Linux MongoDB的安装
  6. 代码的重构(Refactor-Extract)
  7. 简单的Poc Exp编写(上)
  8. 15:IO之File、Properties类
  9. java8 parallel并行处理实战
  10. 国外青少年最喜爱的聊天 app,竟然是 Google Docs