96SEO 2026-02-23 13:10 13
任何复杂的框架都是简单的知识组合并延伸的学好基础知识才是最重要的

此项目简单便于理解基本原理为复杂SSM复杂项目的开发打下基础。
注意需要安装IDEA开发平台、MySQL数据库和Tomcat服务器版本不一定完全一致做好版本适应性配置即可。
第一步Structs框架总控制器初始化,开始读取strusts-config.xml文件。
Struts框架的总控制器ActionServlet是一个Servlet在web.xml中配置成自动启动的Servlet在启动时总控制器会读取配置文件(struts-config.xml)的配置信息为Struts中不同的模块初始化相应的对象。
(面向对象思想)
第二步视图层向总控制器发送Http请求用户提交表单或者通过URL向WEB服务器提交请求请求的数据用HTTP协议传给web服务器
第三步Form填充structs的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。
第四步派发请求控制器根据配置信息对象ActionConfig将请求派发到具体的Action对应的formBean一并传给这个Action中的excute()方法。
第五步处理业务Action一般只包含一个excute()方法负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。
服务器通过ActionForward对象进行转发工作。
第六步返回响应Action将业务处理的不同结果返回一个目标响应对象给总控制器。
第七步查找响应总控制器根据Action处理业务返回的目标响应对象找到对应的资源对象一般情况下为jsp页面。
第八步:响应用户目标响应对象将结果传递给资源对象将结果展现给用户。
①开源的框架结构清晰②是MVC的经典实现MVC是一种思想而不是一种技术③处理异常机制实现国际化
⑥在formBean中会自动提交不会去使用传统的get、set方法得到值、取值
第一步客户端初始化一个指向Servlet容器例如Tomcat的请求
第三步接着FilterDispatcher被调用FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
第四步如果ActionMapper决定需要调用某个ActionFilterDispatcher把请求的处理交给ActionProxy
第六步ActionProxy创建一个ActionInvocation的实例
第七步ActionInvocation实例使用命名模式来调用在调用Action的过程前后涉及到相关拦截器Intercepter的调用
第八步一旦Action执行完毕ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。
返回结果通常是但不总是也可能是另外的一个Action链一个需要被表示的JSP或者FreeMarker的模版。
在表示的过程中可以使用Struts2框架中继承的标签。
在这个过程中需要涉及到ActionMapper
注意在上述过程中所有的对象ActionResultsInterceptors等都是通过ObjectFactory来创建的
①大量的拦截器Struts2本身提供了大量的可重用的拦截器比如类型转换拦截器很多时候从页面取得参数这个时候它是String类型的需要手动。
②基于插件的框架Struts2是一个基于插件的框架社区中提供了很多实用的插件比如jfreechat/json等等使用这些插件可以简化我们的开发加快开发进度。
Struts2最大的缺点莫过于在好多web服务器上支持不好例如在websphere5.5,weblogic8.1及以前版本支持非常查需要用最新的。
③多种视图的支持多种视图的支持jspfreemarkerVeloctiy甚至可以通过轻松的改造支持pdf同一个项目中可以支持多种视图。
相比Struts2更加的模块化可以轻松将配置信息按功能界限拆分成多个文件便于管理和团队协作开发。
⑤与Spring的集成与Struts1.x相比Struts2不必再自己编写singleton进一步的降低了程序间的耦合性就Struts2内部本身而言降低了框架本身的偶合性。
⑥基于pojo易于测试在Struts1.x中需要Mock出这两个Http对象很难编写Action的单元测试与Struts1.x相比Struts2的Action
不再依赖于HttpServletRequest和HttpServletResponse对象使我们能够更方便的针对Action编写单元测试。
①Struts2中Action中取得从jsp中传过来的参数时麻烦。
可以为Struts2的Action中的属性配置上Getter和Setter方法通过默认拦截器就可以将请求参数设置到这些属性中。
但当请求参数很多时Action类就显得很臃肿。
Action中的属性不但可以用来获得请求参数还可以输出到Jsp中会更乱。
②校验比较繁琐。
如果校验出错的只能给用户提示一些信息。
如果有多个字段每个字段出错时返回到不同的画面在Strut2框架下借助框架提供的校验逻辑就不容易实现。
③安全性有待提高。
使用缩写的导航参数前缀时的远程代码执行漏洞另一个是使用缩写的重定向参数前缀时的开放式重定向漏洞。
Spring是一个开源框架是2003年兴起的轻量级的Java开发框架,为解决企业应用开发的复杂性而创建的。
简单来说Spring是一个轻量级的控制反转IOC和面向切面AOP的容器框架。
日常开发中IOC容器使用较多可以装载Bean即Java中的类不用在每次使用类的时候初始化很少出现关键字new。
另外spring的AOP事务管理等等也会经常使用。
IOC:控制反转是一种降低对象之间耦合关系的设计思想。
如租赁房屋平常租房需要自己逐个小区寻找房屋然后使用了IOC之后即需找一个租房中介把对房屋的需求告诉中介就可以直接找到合适的房屋。
即把需求交给了第三方有第三方帮助你完成你的需求中介就相当于Spring容器。
AOP:面向切面编程是面向对象开发的一种补充允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求如动态的增加日志、安全或异常处理等。
AOP使业务逻辑各部分间的耦合度降低提高程序可重用性提高开发效率。
①轻量级Spring是一个轻量级的开发框架基本版本大约只有2M
③AOP面向切面编程Spring支持面向切面编程这样可以将业务逻辑和系统服务分开分离
⑤MVC思想Spring也是基于MVC思想的框架也遵循模型-视图-控制器这三个层次
⑥事务spring提供一个持续化的接口可以上至扩展到本地事务下至扩展到全局事务
提供方便的API把具体技术相关的异常比如由JDBChibernate,or
②Spring能消除在许多工程中常见的对Singleton的过多使用。
降低了系统的可测试性和面向对象的程度。
③通过一种在不同应用程序和项目间一致的方法来处理配置文件Spring能消除各种各样自定义格式的属性文件的需要。
④通过把对接口编程而不是对类编程的代价几乎减少到没有Spring能够促进养成好的编程习惯。
⑤Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。
在Spring应用中的大多数业务对象没有依赖于Spring。
⑦Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。
能选择用POJOs或local
⑧Spring帮助你解决许多问题而无需使用EJB。
Spring能提供一种EJB的替换物它们适用于许多web应用。
例如Spring能使用AOP提供声明性事务管理而不通过EJB容器如果你仅仅需要与单个数据库打交道甚至不需要一个JTA实现。
⑨Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R
第二步Configuration.config()来读取配置文件里面的映射信息
①hibernate是基于ORMapping技术的开源的框架对JDBC进行了轻量级的封装使用面向对象的思维来操纵数据库。
②hibernate提供了session缓存和二级缓存对于不需要进行复杂查询的系统性能有提升。
②hibernate由于不直接对底层数据库进行操作所以不适合复杂的查询统计
Struts、Spring、Hibernate的一个集成框架是目前较流行的一种web应用程序开源框架用于构建灵活、易于扩展的多层Web应用程序。
Struts作为系统的整体基础架构负责MVC的分离在Struts框架的模型部分控制业务跳转利用Hibernate框架对持久层提供支持。
Spring一方面作为一个轻量级的IoC容器负责查找、定位、创建和管理对象及对象之间的依赖关系另一方面能使Struts和Hibernate更好地工作。
SSH框架的系统从职责上分为四层表示层、业务逻辑层、数据持久层和域模块层(实体层)。
在表示层中首先通过JSP页面实现交互界面负责传送请求(Request)和接收响应(Response)然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。
IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。
在持久层中则依赖于Hibernate的对象化映射和数据库交互处理DAO组件请求的数据并返回处理结果。
采用上述开发模型不仅实现了视图、控制器与模型的彻底分离而且还实现了业务逻辑层与持久层的分离。
无论前端如何变化模型层只需很少的改动并且数据库的变化也不会对前端有所影响大大提高了系统的可复用性。
而且由于不同层之间耦合度小有利于团队成员并行工作大大提高了开发效率。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback