撩课-Java每天5道面试题第17天
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四个域对象中最小的。
撩课-Java每天5道面试题第17天的更多相关文章
- 撩课-Java每天5道面试题第13天
撩课Java+系统架构点击开始学习 96.JDBC操作数据库的步骤 ? .加载数据库驱动 .创建并获取数据库链接 .创建jdbc statement对象 .设置sql语句 .设置sql语句中的参数(使 ...
- 撩课-Java每天5道面试题第15天
撩课Java+系统架构点击开始学习 106.什么是Hibernate的并发机制?怎么去处理并发问题? a.Hibernate的Session对象是非线程安全的, 对于单个请求,单个会话, 单个的工作单 ...
- 撩课-Java每天5道面试题第10天
撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...
- 撩课-Java每天5道面试题第9天
撩课Java+系统架构 视频 点击开始学习 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素内容. 属性标示数据内容及关系 ...
- 撩课-Java每天5道面试题第8天
撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, applicat ...
- 撩课-Java每天10道面试题第7天
撩课Java+系统架构 视频 点击开始学习 61.什么是并发修改异常? 什么是并发修改异常: 当我们在遍历实现了collection接口 与iterator接口的集合时(List.Set.Map), ...
- 撩课-Java每天10道面试题第4天
撩课Java+系统架构 视频 点击开始学习 31.静态变量和实例变量的区别? 静态变量也叫类变量, 这种变量前加了static修饰符. 可以直接用类名调用, 也可以用对象调用, 而且所有对象的同一个类 ...
- 撩课-Java每天5道面试题第24天
151.springMVC和struts2的区别有哪些? .springmvc的入口是一个servlet即前端控制器(DispatchServlet), 而struts2入口是一个filter过虑器( ...
- 撩课-Java每天5道面试题第23天
146.什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于MVC架构的 用来简化web应用程序开发的应用开发框架, 它是Spring的一个模块, 无 ...
随机推荐
- Forward团队-爬虫豆瓣top250项目-模块开发过程
项目托管平台地址:https://github.com/xyhcq/top250 开发模块功能: 爬虫对信息的处理部分 开发时间:5天的下午空余时间(每天大约1小时,边学模块的使用边开发) 实现了:爬 ...
- bzoj4556(sam)
二分答案,(具体可见http://blog.csdn.net/neither_nor/article/details/51669114),然后就是判定问题,sa和sam都可以做,用sam写了一下,先用 ...
- liunx 安装jdk
1 下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2 切换root ...
- Django orm 实现批量插入数据
Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...
- 分布式系统中 Unique ID 的生成方法
http://darktea.github.io/notes/2013/12/08/Unique-ID Snowflake 生成的 unique ID 的组成 (由高位到低位): 41 bits: T ...
- C#基础-gc算法
众所周知,c++是需要程序员手动管理内存的,然而手动释放内存很容易被程序员遗漏,从而导致资源浪费或内存泄露.为解决这个问题,垃圾回收器诞生了,代替程序员自动管理内存的释放.至于gc算法则是垃圾回收器清 ...
- 【Spark调优】数据本地化与参数调优
数据本地化对于Spark Job性能有着巨大的影响,如果数据以及要计算它的代码是在一起的,那么性能当然会非常高.但是,如果数据和计算它的代码是分开的,那么其中之一必须到另外一方的机器上.移动代码到其匹 ...
- Vue-Cli 搭建项目 小白
vue-用Vue-cli从零开始搭建一个Vue项目 Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组 ...
- ajax无刷新技术
第一步:创建ajax引擎 var xmlhttp=""; if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }els ...
- python --第三方登录--微博
理解第三方登录的流程: 用户向本地应用商城发起请求,我要用微博进行登录 我们的商城凑一个url让用户跳转到第三方应用的url(微博的登录页面) 用户在该界面点击输入用户名密码之后,点击授权. 微博有个 ...