理解Struts框架:核心概念与配置解析

版权申诉
0 下载量 50 浏览量 更新于2024-07-03 收藏 126KB DOC 举报
"这篇文档是作者自己整理的2011年实用JAVA面试题,主要涵盖了Struts框架的相关知识,适合准备Java面试的开发者查阅。" 在Java Web开发中,Struts是一个非常重要的MVC(Model-View-Controller)框架,它主要负责处理Web层的业务逻辑。Struts的核心是ActionServlet,它作为一个特殊的Servlet来处理特定的请求,并根据配置文件将这些请求分发给相应的Action进行处理。 1. Struts框架的工作原理: 当用户发送一个以`.do`结尾的HTTP请求时,这个请求会被Web服务器转发给在`web.xml`中配置的ActionServlet。ActionServlet解析请求,然后根据`struts-config.xml`或现代版本的`struts.xml`配置文件中的Action元素,找到对应的Action类,进一步调用该类的execute方法来执行业务逻辑。 2. 防止Struts配置文件膨胀: 为了防止配置文件过于庞大,可以通过在`web.xml`中设置多个配置文件或者在`struts-config.xml`中使用通配符来组织Action的配置。这样可以将相关的Action配置分组,使得配置更有序且易于维护。 3. Action元素的必要属性: - `Path`:定义请求URL路径,用于匹配用户的HTTP请求。 - `Type`:指定处理该请求的Action类,通常是一个全限定类名。 - `Name`:关联的FormBean名称,用于封装请求参数。 4. 查找Action.execute方法的流程: 用户的请求URL(如xx.do)首先由ActionServlet捕获,接着根据配置文件中的`path`属性找到对应的`Action`元素,再通过`type`属性确定Action类,最后调用这个类的`execute`方法执行业务逻辑。 5. 在Action中直接响应内容: 虽然理论上Action可以向浏览器直接写入内容,但这是不推荐的。通常,Action应该专注于业务逻辑,处理完后返回一个ActionForward对象指示下一个页面或动作,而不是直接输出内容。如果返回null,通常表示结束请求并返回到请求前的页面。 6. ActionMapping与Action的区别: - Action是实际处理请求的Java类,实现了业务逻辑。 - ActionMapping是配置文件中定义的Action元素的实例,它包含了Action的相关配置信息,如Action类、路径等,用于ActionServlet进行请求分发。 7. Action元素的Attribute属性: Attribute属性用于指定将FormBean保存在哪个Web作用域(如session或request)。当表单数据提交后,Struts会将这些数据封装到一个FormBean对象中,然后通过Attribute属性指定的名字将FormBean放入作用域,以便其他页面或Action能够访问。 8. `<html:form>`标签与Action的关联: `<html:form>`标签是Struts标签库中的元素,用于创建HTML表单。它的`action`属性应指向一个Action路径,这个路径将在提交表单时触发Struts框架的处理流程,找到相应的Action来执行业务逻辑。如果没有关联到Action,则表单提交后的处理将无法正常进行。 以上是文档中提到的关于Struts框架的关键知识点,对于理解Struts的工作原理和配置方法具有指导意义。在面试中,这些知识点通常会作为基础问题出现,以检验开发者对Java Web开发和Struts框架的理解程度。