Struts 学习之03Controller(控制器 上)

本文深入探讨Struts框架作为MVC模式的应用,详细介绍了其组成部分包括ActionServlet、RequestProcessor、Action等,并阐述了处理用户请求的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面写了一些struts的视图部分,而今天来看看它的控制器,首先回顾一下普通的WEB模式,一般来说从一个用户发出一个请求,正常时到一个Servlet,然后servlet提供一个服务它会根据用户的请求,它会调用一个JSP页面,或更复杂一点它会调用一个BEAN,而这个BEAN复杂一点,可能会负责我们业务逻辑交互,取得一个数据,得到需要的数据资料,返回BEAN,然后JSP页面进行读取显示!
  其实上面所术的JSP  servlet 以及javabean就是一个简单的MVC,分别对应视图层,控制层以及模型层。从上图我们也可以看出一般的WEB应用程序,我们都是通过servlet作为主要控制器来使用,用户所接触的第一个服务控制对象就是servlet所产生的实体,其后servlet会根据用户所请求的内容平决定如何处理客户请求,或者该调用其他的bean实体来协助处理,以及决定该反馈用户的数据是什么,整个过程中servlet把后台服务和用户隔离,使得客户实体和数据实体/服务实体之间不直接关联,使得用户的数据处理及反馈的灵活性有了很大的增强,同时减少了组件实体之间的偶合,视图组件与模型组件之间的联系就不太强了!
  而struts也是MVC这样一种模型的体现,它主要的目的也就是作为一个MVC的框架,它同样也是接受用户的请求,然后根据用户的不同请求,调用对应的模型组件来执行相应的业务逻辑,获取业务逻辑执行的结果,而且还可以根据当前的状态数据及业务逻辑的处理结果,选择适合的视图组件返回给客户
  我们来看下图

  浏览器发出请求后,我们经过的是一个ActionServlet对象,然后ActionServlet对象它会处理请求,会读取相对的struts-config.xml配置文档,然后调用对应的Action执行其execute方法,然后会调用对应的ActionForm或者直接反馈给相应的JSP页面或者和业务层交互,整个里面所有的请求经过的地方都是ActionServlet,它也是我们前面讲到的servlet中的一种!
  关于这个里面的具体步骤如下图:

  首先我们经过一个ActionServlet然后我们会经过一个RequestProcessor对象 ,在RequestProcessor处理完之后会调用相关的Action对象,Action对象里面有一个execute方法,在经过ActionServlet调用了之后会交给RequestProcessor处理,它处理完后会调用Action,然后由action操作对应的ActionForm,最终得到我们需要的结果!
  那么这次的随笔中就要写有关AnServlet;  RequestProcesssor;Action;ActionMapping;ActionForward;
  我们还是看看前面文章中用到的图!
当请求获取到的时候我们会首先调用ActionMapping,,这时如果它找到的话,会创建一个ActionMapping对象,创建完后就是我们的struts-config.xml配置文件里面的Bean的配置,会对应创建一个FormBean,也就是所谓的ActionForm,然后这个ActionForm有了后,会去验证,也就是前面我们已经讲了的Validate,如果验证成功了我们会调用相对的Action里面的execute方法,如果execute返回的是一个ActionForward对象,会进行跳转,最终用户得到结果! 

基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生和教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值