面试疑难点解析:开发工具及框架(九)

简介: 本节内容将面试常见的Struts问题汇总在一起,读懂这一篇,面试遇到Struts问题不用怕了~

Struts问题汇总

所有的开源框架里面必然包含有各个公司自己的一些程序代码,或者是与其它一些开发框架整合的程序代码,对于这些代码,如果要是有时间,可以直接通过官网下载源代码目录,这个目录一般情况下都比较小(10M左右),如果没有源代码,那么最简单的做法就是直接利用Maven进行下载。

1.如果要去研究源代码,或者看某个程序的具体实现,简单的依靠一个开发包根本不可能,除非下载源代码程序包,里面许多程序类的关系大部分都不需要处理,要处理的只是需要开发的部分。例如:开发的是拦截器、Action、转换器等等,在Struts里对于这些操作提供有一系列的支持,像自动进行参数赋值就属于拦截器的范畴。在整个课程里针对开发框架,尤其是MVC开发框架已经给出了反射的分析过程,只需要掌握DispatcherServlet程序类,那么所有的MVC基本核心原理就明确了:线程处理、请求参数自动赋值(拦截器)、自动转换。所有的开发框架的本质就是反射处理操作。

2.Struts拦截器,在拦截器里可以设置属性,还需要在struts.xml之中进行配置,在进行Struts配置文件编写时还需要使用一个继承关系(继承一些公共的配置项);

3.Struts2.x上传使用的是FileUpload处理操作,而这个处理在JavaWEB开发实战经典中讲解过,其核心的特点是可以接受原始的文件名称以及操作类型,对于接收操作来讲,官方文档已经给出了其接收的类型,这个是由官方定义好的,如果有一天你自己开发的框架可以盛行,你这些规则由你自己来定,如果你学习过反射机制,深入了解了DispatcherServlet设计,那就可以理解为什么有这样的要求;

4.Struts2.x最大的败笔在于:大量的setter、getter以及对象的实例化处理机制,而这个问题之所以会要求编写主要也是在DispatcherServlet程序类中已经给了明确的说明,依然是基于反射的处理操作;

5.Struts2.x里的转换处理操作本身是有Bug存在的,如果在默认情况下接受的数据类型是Int,但是传递了String,这个时候肯定无法正常接受,因为会产生NumberFormatException异常,原因在讲解DispatcherServlet的时候已经分析过了,因为它的原理是根据所有的参数名称以及对应的属性名称;

6.Struts2.x里默认支持EL,在Struts2.x最初的时代是没有EL的,它提供了一种与EL类似的解决方案:OGNL(很麻烦,一般不建议再使用,需要追溯到2005年左右);

7.对于数组的接受处理操作本质上是利用了request.getParameterValues(),这个处理操作在进行接收的时候可以将接收到的数据以数组的形式出现或者以List集合的形式出现,因为有参数名称,而且参数名称和属性名称又是一样的,那么就可以根据参数名称获取属性类型,如果发现属性类型是一个数组,则根据数组的形式来进行接收处理,依然采用了反射机制,DispatcherServlet也已经有了明确的说明;

8.国际化的本质在于ResourceBundle,它需要一个资源名称,例如:Messages.properties、Message_zh_CN.properties,这里面Message就属于资源名称,而后面那些国际化标记是通过local实现的指派。里面设置的占位符是通过MessageFormat类完成处理的,它是按照“{0}”、“{1}”这样的顺序进行设置;

对于Struts而言需要掌握的部分在Java基础、MVC设计思想、反射应用的结合体上。

更多专业知识,面试技巧就在面试一点通,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧

相关文章
|
3月前
|
Web App开发 缓存 前端开发
浏览器常见面试题目及详细答案解析
本文围绕浏览器常见面试题及答案展开,深入解析浏览器组成、内核、渲染机制与缓存等核心知识点。内容涵盖浏览器的主要组成部分(如用户界面、呈现引擎、JavaScript解释器等)、主流浏览器内核及其特点、从输入URL到页面呈现的全过程,以及CSS加载对渲染的影响等。结合实际应用场景,帮助读者全面掌握浏览器工作原理,为前端开发和面试提供扎实的知识储备。
165 4
|
3月前
|
存储 安全 Java
2025 最新史上最全 Java 面试题独家整理带详细答案及解析
本文从Java基础、面向对象、多线程与并发等方面详细解析常见面试题及答案,并结合实际应用帮助理解。内容涵盖基本数据类型、自动装箱拆箱、String类区别,面向对象三大特性(封装、继承、多态),线程创建与安全问题解决方法,以及集合框架如ArrayList与LinkedList的对比和HashMap工作原理。适合准备面试或深入学习Java的开发者参考。附代码获取链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
1340 48
|
3月前
|
前端开发 JavaScript 开发者
2025 最新 100 道 CSS 面试题及答案解析续篇
本文整理了100道CSS面试题及其答案,涵盖CSS基础与进阶知识。内容包括CSS引入方式、盒模型、选择器优先级等核心知识点,并通过按钮、卡片、导航栏等组件封装实例,讲解单一职责原则、样式隔离、响应式设计等最佳实践。适合前端开发者巩固基础、备战面试或提升组件化开发能力。资源地址:[点击下载](https://pan.quark.cn/s/50438c9ee7c0)。
102 5
2025 最新 100 道 CSS 面试题及答案解析续篇
|
3月前
|
缓存 NoSQL Java
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
193 6
|
3月前
|
NoSQL Java 微服务
2025 年最新 Java 面试从基础到微服务实战指南全解析
《Java面试实战指南:高并发与微服务架构解析》 本文针对Java开发者提供2025版面试技术要点,涵盖高并发电商系统设计、微服务架构实现及性能优化方案。核心内容包括:1)基于Spring Cloud和云原生技术的系统架构设计;2)JWT认证、Seata分布式事务等核心模块代码实现;3)数据库查询优化与高并发处理方案,响应时间从500ms优化至80ms;4)微服务调用可靠性保障方案。文章通过实战案例展现Java最新技术栈(Java 17/Spring Boot 3.2)的应用.
216 9
|
3月前
|
设计模式 安全 Java
Java 基础知识面试题全解析之技术方案与应用实例详解
本内容结合Java 8+新特性与实际场景,涵盖函数式编程、Stream API、模块化、并发工具等技术。通过Lambda表达式、Stream集合操作、Optional空值处理、CompletableFuture异步编程等完整示例代码,助你掌握现代Java应用开发。附面试题解析与技术方案,提升实战能力。代码示例涵盖计算器、员工信息统计、用户查询、模块化系统设计等,助你轻松应对技术挑战。
101 9
|
3月前
|
缓存 Java 索引
2025 年 Java 面试必备最常见 200 + 面试题及答案解析
这是一份针对Java面试的综合技术方案与应用实例文档,涵盖Java基础(JDK/JRE、字符串、IO流)、容器(ArrayList/LinkedList、HashMap)、多线程(线程创建、同步、线程池)、数据库(MySQL索引、Redis缓存穿透)及Spring框架(IOC容器、热部署)等核心模块。通过详细解析常见面试题,帮助读者深入理解并掌握Java核心技术,为应对面试提供全面指导。此外,还涉及反射、设计模式、JVM调优等进阶内容,助力开发者全面提升技能。代码示例可从提供的链接下载。
829 6
|
3月前
|
算法 安全 Java
2025 校招必看:Java 开发面试核心知识点深度解析及最新笔面试题汇总
本文针对2025校招Java开发面试,系统梳理了Java基础、集合框架、多线程并发、JVM等核心知识点,并附带最新笔面试题。内容涵盖封装、继承、多态、异常处理、集合类使用、线程同步机制、JVM内存模型及垃圾回收算法等。同时深入探讨Spring、数据库(MySQL索引优化、Redis持久化)、分布式系统(CAP理论、分布式事务)等相关知识。通过理论结合实例解析,帮助考生全面掌握面试要点,提升实战能力,为成功拿下Offer奠定坚实基础。
386 3
|
3月前
|
存储 缓存 安全
Java 集合容器常见面试题及详细解析
本文全面解析Java集合框架,涵盖基础概念、常见接口与类的特点及区别、底层数据结构、线程安全等内容。通过实例讲解List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)、Map(如HashMap、TreeMap)等核心组件,帮助读者深入理解集合容器的使用场景与性能优化。适合准备面试或提升开发技能的开发者阅读。
66 0
|
3月前
|
存储 缓存 安全
Java 集合篇面试题全面总结及答案解析
本文总结了Java集合框架的核心概念、常见集合类的特性与应用场景,以及开发中可能遇到的问题与解决方案。内容涵盖集合框架的基础接口(如Collection、Set、List、Map)、泛型的优点、线程安全集合类(如ConcurrentHashMap、CopyOnWriteArrayList)、常见集合类的区别(如ArrayList与LinkedList、HashMap与HashTable)等。此外,还详细介绍了如何实现LRU缓存、FIFO队列、优先级队列及栈等数据结构,并提供了相关代码示例。通过本文,读者可以全面掌握Java集合相关的面试知识点及其实际应用技巧。
132 1

推荐镜像

更多
  • DNS