Struts学习笔记(二)

本文介绍了Struts框架的基本概念,包括其核心组件ActionServlet的工作流程、请求处理机制以及如何使用MessageResources实现文本本地化。
整理了一些Struts入门的一些知识,我个人认为是比较重要和实用的,整理的还不够全,在以后对Struts
的深入学习过程中,我会逐步的将它完善,希望对热爱Struts框架的朋友能有一点帮助enjoying^_^
 

Java API 中有以下几个比较重要的类

他们决定了Web应用的请求/响应方式各种共享数据的存放地点:

 HttpServletRequest:封装用户的Http请求,课存放request范围内的共享数据

 HttpServletResponse:用于生成Http响应结构

 HttpSessionServlet容器为每个HTTP会话创建一个HttpSession实例,可以存放session范围的共享数据

 ServletContex: Servlet容器为每个Web应用创建一个ServletContext实例,用来存放application范围的共享数据

 

四种在web组件中共享数据的特定范围:

page:用户请求访问的当前JSP

request:用户请求访问的当前Web组件,以及和当前Web组件共享同一个用户请求的其他Web组件。如果用户访问的时JSP网页,那么该JSP网页的<%include>指令以及<forward>标记包含的其他JSP文件也能访问共享数据。

session:整个HTTP会话的生存周期

applicationWeb应用的生命周期。

 

请求重定向与请求转发的区别:

请求重定向可以是任何一个URL,而请求转发仅限于同一应用的URL

重定向的源组件和目标组件不共用同一个HttpServletRequest,一次不能共享request范围内的共享数据;而请求转发将ServletRequestServletResponse对象传递给目标组件,使得目标组件可以访问转发页面的整个请求的上下文(实现了数据共享)。<jsp:forward page=”*.jsp”>/RequestDispatcher.Forward(request,response) response.sendRedirect()

 

Struts框架:

 

Struts框架中最核心的组件:ActionServletextend javax.servlet.http.HttpServlet

对于采用Struts框架的Web应用,在Web应用启动的时候回加载并初始花ActionServletActionServletstruts-config.xml文件中读取配置信息,把他们存放到各种配置对象中,例如Action的映射信息存放在ActionMapping对象中

 

Struts的工作流程:

ActionServlet接收到一个客户请求时将执行如下流程:

1.  检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。

2.  如果ActionForm实力不存在,就创建一个,把客户提交的表单保存带ActionForm中,在这里你可以进行针对输入的格式语法等方面的数据简单验证。

3.  由配置信息决定是否需要进行表单验证,需要<validate = “true”> 则调用ActionForm中的validate()方法。

4.  如果ActionFormvalidate()返回null则表明成功,返回ActionMessageActionErrors对象就表示失败。

5.  ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action。如果Action不存在就先创建该实例,然后调用气execute方法。

6.  Actionexecute()方法返回一个ActionForward对象,其再把请求转发给ActionForward对象指向的JSP,所以不要忘记在execute方法中去自定义一个ActionForward的实例哦。

7.  ActionForward对象指向的JSP组件生成动态网页,返回结果给客户。

 

访问封装在MessageResources中的本地化文本

将一些常用的输出信息,或者显示文本同一放在一个或多个自愿文件中然后利用特定的类的实例来进行访问,不仅清洁了代码,方便了控制,对项目的可维护可移植性也比较有利。

Action类中定义了getResourcesHttpServletRequest request)方法,该方法返回当前默认的MessageResources对象,它封装了Resouce Bundle中的文本内容。可以调用MessageResouces类的getMessageString key)方法对某条资源进行访问。 

标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值