"struts2笔记,韩顺平主讲struts的笔记,详细介绍了struts的开发原理"
Struts2是一个流行的开源Web框架,它的出现旨在解决MVC(模型-视图-控制器)架构在不同项目中实现不一致的问题,从而提高程序的规范性和可维护性。框架的核心在于其提供的ActionServlet,它充当了请求处理的中心角色。
Struts2运行原理详解:
当一个HTTP请求从浏览器发出,比如`http://localhost:8080/web应用/action`,Web服务器首先解析主机名,然后识别Web应用的名称,接着找到具体的资源名。这个请求会被转发给Struts框架提供的ActionServlet。ActionServlet依赖于配置文件`struts-config.xml`,在这个配置文件中,定义了表单(actionForm)、action以及它们之间的映射关系。ActionServlet接收请求后,根据配置文件填充数据到表单对象中,然后调用对应的action(业务逻辑处理类)。action从表单对象中获取用户输入,进一步调用model(如服务层)来处理业务。处理完成后,action将结果返回给ActionServlet,ActionServlet依据配置决定跳转到哪个JSP页面。最终,ActionServlet生成静态HTML页面,通过Web服务器返回给浏览器。
Struts2配置文件`struts-config.xml`中,`<action>`标签用于定义各个action的相关属性,包括scope。scope属性指定了actionForm对象的生命周期范围,默认值为session。这意味着actionForm对象会在整个会话期间保持存活,除非显式地从session中移除。这有助于跨多个请求保持状态,但也可能导致内存占用过多,因此需要根据实际需求合理设置。
为了使Struts2框架能够正常工作,开发者还需要进行一系列的配置工作,包括:
1. 创建Web工程,并导入Struts2相关的库。
2. 编写视图页面,如login.jsp。
3. 定义actionForm(通常用于封装表单数据)和action(处理业务逻辑的类)。
4. 配置`struts-config.xml`,定义action与actionForm、JSP页面之间的映射。
5. 编写成功和错误处理页面,如ok.jsp和err.jsp。
6. 配置`web.xml`,添加Struts2的过滤器,例如设置`<filter>`和`<filter-mapping>`。
7. 进行测试,确保所有配置正确无误,功能可以正常运行。
在Struts2中,过滤器(Filter)扮演着重要的角色。例如,`MyFilter`继承自`HttpServlet`并实现了`Filter`接口,这样的过滤器可以拦截请求,进行预处理或后处理操作,如身份验证、日志记录等。在`doFilter`方法中,可以通过`arg0`和`arg1`参数分别访问到ServletRequest和ServletResponse对象,实现过滤逻辑。
Struts2框架通过提供一套标准的开发规范,简化了MVC模式的实现,提高了开发效率和代码的可读性。然而,随着技术的发展,现代Web开发中已出现了更多选择,如Spring MVC等,它们在灵活性和性能方面有所提升,但Struts2仍然是理解Web框架设计和MVC模式的经典案例。