最近参加了几次面试,很多都会问道struts框架,所以自己准备了一些能够和面试官聊的东西,以及一些有可能给在面试官的留下深刻印象的话题。现在我成功找到了工作,所以
把这些东西整理了下,希望给在金融危机中找工作的朋友一点帮助。
一、什么是struts
在我们用servlet和jsp做web工程的时候,不可避免的要去对客户端传过来的数据进行处理,并且还要做出相应的反应。struts就是对这个过程中相对不变的部门内容进行初步的封
装。
二、struts的原理
struts是一个按MVC模式设计的web层框架,其实它就是一个大大的servlet,我们可以在web.xml文件中将符合某种特征的所有请求到交给这个servlet处理,这个servlet再参照一个
配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action去处理.servlet把请求交给action去处理之前,会讲请求参数封装成一个formbean对象,然后
调用这个formbean的validate方法进行校验,校验通过后则将这个formbean对象传递给action的execute方法。actionForward对象通过struts-config.xml配置文件中的配置关联到
某个jsp页面,这样可以实现action程序代码与返回的jsp页面名称的解藕.图,这个结果视图
三、高级特性
1、actionform的数据填充和页面显示
actionform是存放request,session等中的,具体在哪里是在action的配置文件的scope中配置的,它的名字是由attribute属性指定的,通常我们都不指定,那么这个时候它的名字
与name属性的值一直
2、解决配置文件膨胀问题,
使用配置文件数组来初始化配置信息;
使用DispatcherAction分发方法;
在配置文件中使用,把其他的配置文件引入到一个默认的struts-config.xml文件中
3、DispatcherAction的应用和配置
dispatcheraciont是在struts-config.xml中配置perameter属性,这个方法指定了在访问该action时需要传递一个方法名被perameter值所指定,
内部实现:首先获得调用getParameter()获得parameter的值
接着调用getMethodName获得将要调用方法的名字
最后通过反射调用应用程序中的相应的方法
4、MappingDispatcherAction的应用和配置
MappingDispatcherAction继承dispatcherAction,配置文件中parameter指定的就是要访问的方法
其实现是通过重写dispatcherAction中的getMethodName方法,放回的就是parameter指定的名称
5、action配置中必须配置path和type,include,forword,
6、struts是不安全的,他的默认配置是单实例的,也就是说在一个应用中对于每一个action在内存中只存在一个实例。所有的请求都共享一个action实例,所以在action类中的字
段会被所有请求共享,存在actionform中的数据有可能被其他的线程访问到,所以说struts不是线程安全的。但是我们通过配置也可以让action实例存在多份,在struts配置文件
中为同一个action类。配置多个action映射
8、ActionConfig,FormBeanConfig,ForwardConfig分别代表的是action,formbean,forward的配置信息,ActionMapping是ActionConfig的子类
9、action中可以直接使用response返回应答结果,但是不能返回forward对象,否则forward对象的内容会把response直接返回的内容冲掉
四、核心类
1、ActionServlet:主要功能初始化配置文件(struts-config.xml),实例化成ActionConfig,FormBeanConfig,ForwardConfig对象数组;当一个请求到来的时候ActionServlet获得一
个RequestProcessor对象来process这个请求。
2、RequestProcessor:处理请求的过程
(1)、解析访问的路径信息,把应用路径和后缀名去掉剩下的就是对于action的路径path
(2)、处理Locale,Content,Cache等
(3)、根据路径名path找到需要的action的配置信息ActionMapping(ActionConfig),
(4)、处理formbean,现在作用域中查找是否存在formbean,如果不存在根据FormBeanConfig获得一个formbean
(5)、填充找到的formbean,根据配置决定是否需要验证
(6)、获得一个action根据ActionMapping,如果有直接用,没有就new一个
(7)、调用processActionPerform方法,执行action中的execute的代码,并获得ActionForward
(8)、根据获得的actionforward找到相应的jsp,返回到视图层
分享到:
相关推荐
在Java基础面试中,面试官可能会关注以下几个方面: 1. **Java内存模型**:Java有堆内存、栈内存、方法区、本地方法栈和程序计数器。理解它们的作用和交互是基础。 2. **变量与数据类型**:包括基本数据类型和引用...
Struts+Hibernate+Spring是Java开发中常用的三大框架,它们分别负责MVC模式中的视图、持久层和业务层管理。...在实际面试中,除了基础理论知识,面试官还会关注开发者在项目中如何应用这些技术解决问题的能力。
【SSH面试题汇总】主要涉及的是Struts、Spring和Hibernate这三个流行Java EE框架的相关知识,以及MVC设计模式的理解。...同时,理解如何在实际项目中应用这些技术,以及它们的优点和缺点,都是面试官希望听到的。
对于组合使用这三个框架,面试官可能会询问如何整合Struts、Hibernate和Spring,例如通过Spring的HibernateTemplate或JPA进行数据访问,或者利用Spring的Interceptor实现Struts的拦截器功能。此外,面试者还需要理解...
JAVA面试问题总结 JAVA是一种广泛应用的编程语言,作为一名JAVA开发者,需要具备扎实的基础知识和实践经验。本文总结了常见的JAVA面试问题,涵盖了JAVA基础、JSP、Servlet、XML、J2EE、MVC、数据库等方面的知识点。...
总的来说,面试者需要对Spring的依赖注入、AOP和MVC有深入理解,熟悉Hibernate的实体管理、缓存和查询方式,以及Struts的MVC流程和配置。同时,了解如何在实际开发中优化这些技术,以提高应用性能和可维护性。在准备...
SSH是三个流行开源框架的缩写,分别代表Spring、Hibernate和Struts,它们在Java Web开发中被广泛使用。下面是对这些框架的核心知识点的详细解释: 1. **Hibernate**: - **工作原理**:Hibernate通过读取配置文件...
面试时,面试官可能会询问关于类、对象、接口、异常处理和集合框架等方面的问题。 JQuery是一款强大的JavaScript库,简化了DOM操作、事件处理和Ajax交互。熟悉JQuery的基本选择器、DOM操作方法(如`.append()`、`....
面试官可能会通过这些题目来评估你的基础知识、解决问题的能力以及对实际开发场景的理解。对于数据库部分,理解不同数据库系统的特性和分页策略可以帮助你在面对具体问题时做出更合适的选择。同时,熟悉SSH框架的...
3. **店铺管理系统前台框架选择**:面试官可能询问你如何选择前端框架,如Bootstrap、AngularJS、Vue.js等,考察你对用户体验和性能的考虑。 4. **数据库存储过程调用**:存储过程是数据库中预编译的SQL语句集合,...
《世界500强面试题精彩选载》是针对求职者和编程爱好者提供的一份珍贵资源,由一位具有25年经验的面试官精心挑选并揭秘。这份资料涵盖了多个技术领域,包括JAVA、C++、C、J2EE、ASP.NET、JSP等,旨在帮助应聘者更好...
此外,对行业动态的关注和持续学习的能力也是面试官会考察的要点。 总的来说,Java面试宝典全集旨在帮助开发者全面准备面试,不仅强化技术知识,也注重提升面试表现。通过深入学习和实践SSH框架、数据库管理和面试...
1. 工作经验与项目介绍:在面试时,首先需要对自己的工作经验进行介绍。通常需要提及自己有多少年的Java开发经验,参与过哪些类型的项目,如互联网金融、电商或传统后台系统,并简要说明在这些项目中承担的具体职责...
在Java面试中,面试官常常会关注候选人的面向对象编程理解,数据库操作差异,以及Web开发框架的应用等核心概念。以下是对这些关键知识点的详细阐述: 1. **面向对象与面向过程的区别** - **面向对象**(Object-...
同时,面试官可能还会询问关于二级缓存和查询优化的问题。 【PL/SQL面试题】 PL/SQL是Oracle数据库的编程语言,面试会涉及SQL语句、游标、异常处理、存储过程和函数、包的创建和调用。了解PL/SQL的变量声明、控制...
这表明候选人在面试时不仅需要准备答案,还要准备好基于面试官反馈进行深入讨论的能力。 标签“spring spring面试”揭示了文档的主要内容是围绕Spring框架的面试准备。这通常会包括框架的理论知识、核心组件、设计...
在IT行业中,面试是检验...这些技术在实际开发中扮演着关键角色,面试官通过提问这些知识点,可以评估求职者的实际开发经验和问题解决能力。掌握并能灵活运用这些技术,对于在IT行业,尤其是Java开发领域发展至关重要。
以下是一些根据标题、描述和标签整理出的重要Java工程师面试知识点: 1. **Java基础**: - 类与对象:理解面向对象编程的基本概念,如封装、继承、多态。 - 异常处理:掌握如何使用try-catch-finally结构,理解...
在Java面试中,尤其涉及到企业级应用开发时,面试官常常会关注候选人在SSM(Spring、Spring MVC、MyBatis)和SSH(Spring、Struts、Hibernate)这些主流Java EE框架上的理解与实践经验。以下将针对这些框架展开详细...
Java面试笔试总结主要涵盖了许多Java开发中的核心概念和技术,这些知识点是面试官在评估候选人技能时经常关注的焦点。以下是一些重要的Java知识点,对于准备Java Web开发职位的面试者尤其重要。 1. **Java基础** -...