Struts2基础

简介: 第一步 : 首先回顾MVC架构,分为模式1与模式2.   模式1:            WEB项目几乎全由JSP页面组成,JSP页面负责所有的展示与业务逻辑的处理(业务,数据库连接……)。            缺点:JSP页面兼容了view与controller两种角色,控制逻辑与表现逻辑混杂,导致代码重用性很低,增加了扩展与维护的难度。

第一步 : 首先回顾MVC架构,分为模式1与模式2.

  模式1:

           WEB项目几乎全由JSP页面组成,JSP页面负责所有的展示与业务逻辑的处理(业务,数据库连接……)。

           缺点:JSP页面兼容了view与controller两种角色,控制逻辑与表现逻辑混杂,导致代码重用性很低,增加了扩展与维护的难度。

  模式2 :

          基于MVC架构的设计模式,将模型,视图,控制器三者分离,模型采用JAVABEAN来充当,视图采用JSP页面来负责展示,采用Servlet作为前端控制器。三者相互协作,体现了松散耦合的思想。

    Servlet控制器主要有2个作用:

         1、从客户端视图JSP等组件中接收数据,控制逻辑与简单数据处理。

         2、调用JAVABEAN处理实际的逻辑,完成后将数据返回给JSP。

看看MVC模式流程图:

   

 

  总结出MVC模式的特点:

1、  多个视图对应一个模型,可以减少代码的复制与维护量,并且一旦模型发生改变,只需修改对应的视图页面即可。

2、  将模型返回的数据与视图相分离,数据可以适用于任何显示技术,不再单单局限在JSP页面。例如:webservice , 导出为excel文档……

3、  应用分隔为3层,降低了层与层之间的耦合度,提高了应用的扩展性。

4、  控制层将不同的模型与不同的视图组合在一起,完成不同的请求,可以说是控制了用户请求权限。

5、  更加符合软件工程化的管理,各层各司其职,但是每一层又都具有相同的特征,便于程序代码。

 

第二步:了解Struts的发展

  随着MVC模式的发展,01年,Struts1问世,Struts1是第一个完全采用MVC设计模式的框架。03年达到顶峰,但是在不断的应用后,软件需求日渐变化,Struts1出现了局限性以及暴露了其不可修正的缺点。06年     Struts1框架与webwork框架合并,从而诞生出Struts2.

 

第三步:为什么要学习Strust。它能带来什么好处。

   1 Struts设计的第一目标就是使MVC模式应用于web程序设计。

   2 Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于Client/Server HTTP交换协议,The Java Servlet API揭示了Java Servlet只是Java API的一个很小子集,这样我们可以在业务逻辑部分使用            功能强大的Java语言进行程序设计。

     二是提供了对MVC的一个清晰的实现,这一实现包含了很多参与对所以请求进行处理的关键组件,如:拦截器、OGNL表达式语言、堆栈。

 

Strust工作原理:

  

 Strust请求与响应可以分为以下几个步骤:

(1)  客户端向Action发用一个请求(Request)

(2)  Container通过web.xml映射请求,并获得控制器(Controller)的名字

(3)  容器(Container)调用核心控制器StrutsPrepareAndExecuteFilte或者FilterDispatcher ( Struts2.1.3之前用FilterDispatcher,在Struts2.1.3以后调用StrutsPrepareAndExecuteFilter)

(4)  控制器(Controller)通过ActionMapper获得Action的信息

(5)  控制器(Controller)调用ActionProxy

(6)  ActionProxy读取struts.xml文件获取action和interceptor stack(拦截器堆)的信息。

(7)  ActionProxy把request请求传递给ActionInvocation(Action调度者)

(8)  ActionInvocation依次调用action和interceptor

(9)  根据action的配置信息,产生result

(10) Result信息返回给ActionInvocation

(11) 产生一个HttpServletResponse响应

(12) 产生的响应行为发送给客服端。

  

Strust2工作流程分析:

  

ActionInvocation (Action调度者)。

ActionMapper在WEB服务启动时加载。

Interceptor 一系列拦截器的作用是:将request请求的数据解析给XXXAction(业务控制器)。

1、客户端(不一定就是JPS页面)发起请求, 经过一系统的filter后达到StrutsPrepareAndExecuteFilter/FilterDispatcher(核心控制器)【StrutsPrepareAndExecuteFilte或者FilterDispatcher ( Struts2.1.3之前用FilterDispatcher,在            Struts2.1.3以后调用StrutsPrepareAndExecuteFilter)】。

2、核心控制器读取ActionMapper,问询该Action是否存在,如果不存在则返回错误。 如果存在存在则将该请求转交给ActionProxy。

3、ActionProxy读取配置文件struts.xml,查看是否需要表单验证, 如果需要则调用验证框架的validate()进行表单验证。

4、验证完成后,将请求的数据解析出来通过ActionInvocation交给具体的业务控制器 处理。

5、处理完的结果,通过forward请求JSP或其他视图,解析成response, 并返回StrutsPrepareAndExecuteFilter核心控制器,由核心控制器向客户端进行展示。

 

下一章创建一个简单的Strust框架!

 

相关文章
|
8天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
6天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
6515 13
|
4天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
3795 11
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
4天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
4078 5
|
6天前
|
人工智能 JavaScript API
零门槛部署本地 AI 助手:Clawdbot/Meltbot 部署深度保姆级教程
Clawdbot(Moltbot)是一款智能体AI助手,具备“手”(读写文件、执行代码)、“脚”(联网搜索、分析网页)和“脑”(接入Qwen/OpenAI等API或本地GPU模型)。本指南详解Windows下从Node.js环境搭建、一键安装到Token配置的全流程,助你快速部署本地AI助理。(239字)
4210 21
|
12天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
7793 12
|
3天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
2545 5
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
4天前
|
人工智能 JavaScript API
零门槛部署本地AI助手:2026年Windows系统OpenClaw(原Clawdbot/Moltbot)保姆级教程
OpenClaw(原Clawdbot/Moltbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
2997 5
|
7天前
|
人工智能 安全 Shell
在 Moltbot (Clawdbot) 里配置调用阿里云百炼 API 完整教程
Moltbot(原Clawdbot)是一款开源AI个人助手,支持通过自然语言控制设备、处理自动化任务,兼容Qwen、Claude、GPT等主流大语言模型。若需在Moltbot中调用阿里云百炼提供的模型能力(如通义千问3系列),需完成API配置、环境变量设置、配置文件编辑等步骤。本文将严格遵循原教程逻辑,用通俗易懂的语言拆解完整流程,涵盖前置条件、安装部署、API获取、配置验证等核心环节,确保不改变原意且无营销表述。
2362 6

热门文章

最新文章