深入理解Struts1.x:框架原理与实践

需积分: 10 16 下载量 70 浏览量 更新于2024-08-17 收藏 188KB PPT 举报
"这篇资料是关于Struts1.x的学习笔记,涵盖了Struts的基本概念、架构、实践步骤、工作原理、组件、配置文件、标记库、错误处理、校验框架以及高级特性和优缺点。主要适合想要了解或深入学习Struts1.x框架的开发者。" 在Web应用程序开发中,Struts是一个广泛应用的MVC(Model-View-Controller)框架,由Apache软件基金会维护。Struts1.x版本在早期的Java Web开发中占据了重要地位,因为它提供了良好的结构化和可重用性的解决方案。 1. **为什么要使用Struts** Struts基于MVC模式,有助于开发者将业务逻辑、数据访问和用户界面分离,提高代码的可维护性和可重用性。它还提供了一套定制的标签库,简化了JSP页面的编写。此外,作为开源项目,Struts拥有强大的社区支持,能够与其他框架如Spring、Hibernate无缝集成,加速开发过程。 2. **Framework的概念** Framework代表一个可重用、可扩展和可收缩的软件框架。在Web应用中,它通常包含一个控制器来处理用户请求,业务逻辑层来执行具体操作,以及数据逻辑层来管理数据存储。Struts框架便是这种模式的一个实例,通过ActionServlet和Action实现控制器功能。 3. **Struts的概念和体系结构** Struts1.x框架的核心是ActionServlet,它作为MVC中的控制器,负责调度请求到相应的Action。Action是业务逻辑的载体,而视图通常是JSP页面,结合Struts标签库进行渲染。配置文件`struts-config.xml`定义了Action的映射和其他设置。 4. **Struts的工作原理** 当用户发送HTTP请求时,ActionServlet捕获该请求,根据`struts-config.xml`配置文件将请求路由到对应的Action。Action处理完业务逻辑后,返回一个ActionForward对象,指示控制器转发到哪个JSP页面来展示结果。 5. **Struts的组件** - **模型(Model)**:主要由JavaBeans组成,负责业务逻辑。 - **视图(View)**:由JSP页面和Struts标签库构成,呈现用户界面。 - **控制器(Controller)**:ActionServlet和Action类共同作用,协调模型和视图的交互。 6. **Struts配置文件** `struts-config.xml`是Struts的核心配置文件,定义了Action、Form Bean、数据源、全局转发等配置,是系统运行的蓝图。 7. **Struts标记库** Struts提供了丰富的JSP标签,如logic、bean、html和form,这些标签简化了JSP页面的编程,使界面更加清晰。 8. **错误处理和校验框架** Struts提供了异常处理机制和Form Bean验证,可以集中处理错误和校验用户输入,确保数据的准确性和安全性。 9. **高级特性** 包括国际化支持、动态方法调用、自定义拦截器等,使得Struts能够适应各种复杂的应用场景。 10. **Struts优缺点** 优点:结构清晰,易维护,与各种框架兼容性好,开发效率高。缺点:配置繁琐,学习曲线较陡峭,随着Struts2的出现,Struts1.x逐渐被淘汰,但在一些旧项目中仍然广泛使用。 通过学习这些知识点,开发者可以理解Struts1.x的工作原理,掌握如何构建基于Struts的Web应用,以及如何利用其特性优化开发流程。

192.168.85.1 - - [26/Jun/2022:06:07:07 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 24 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 12925 192.168.85.1 - - [26/Jun/2022:06:07:11 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 200 14 192.168.85.1 - - [26/Jun/2022:06:08:06 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 15 192.168.85.1 - - [26/Jun/2022:06:08:16 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 1227 192.168.85.1 - - [26/Jun/2022:06:10:15 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 79 192.168.85.1 - - [26/Jun/2022:06:13:25 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 404 752 192.168.85.1 - - [26/Jun/2022:06:16:42 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:16:57 -0400] "GET //struts2-showcase/hhh.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:18:55 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:19:02 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 35 192.168.85.1 - - [26/Jun/2022:06:19:09 -0400] "GET //struts2-showcase/hhh1.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:19:34 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 400 192.168.85.1 - - [26/Jun/2022:06:20:37 -0400] "POST /struts2-showcase/index.action HTTP/1.1" 500 5 192.168.85.1 - - [26/Jun/2022:06:20:42 -0400] "GET //struts2-showcase/hhh1.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:20:46 -0400] "GET //struts2-showcase/hhh.jsp HTTP/1.1" 403 642 192.168.85.1 - - [26/Jun/2022:06:20:51 -0400] "GET /struts2-showcase/hhh.jsp HTTP/1.1" 403 642

2023-07-12 上传

我用Spring5的aop应用时报这个错误Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\ecliple\web5\WEB-INF\applicationContext.xml]; nested exception is java.nio.file.NoSuchFileException: WEB-INF\applicationContext.xml,他说我的applicationContext.xml文件不存在,可是我明明有这个文件,另外我的web.xml需要更改吗<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>contextConfigLocation </param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <display-name>Struts2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/* </url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>

2023-05-30 上传