当前位置: 首页 > 面试题库 >

Struts 2验证概念理解

乌甫
2023-03-14
问题内容

在接下来的情况下,我不了解Struts2验证的概念:

我的应用程序包含2个动作:

  1. 登录动作
  2. 驱动作用

我可以drive.action从浏览器命令行运行而无需填写用户名和密码login.action

drive.action如果用户未成功输入用户名和密码,如何实现验证代码以防止从命令行运行login.action


问题答案:

Struts 2验证是通过XML或注释配置的。动作中的手动验证也是可能的,并且可以与XML和注释驱动的验证结合使用。

验证还取决于验证和工作流拦截器(两者都包含在默认拦截器堆栈中)。验证拦截器自己进行验证,并创建特定于字段的错误的列表。工作流拦截器检查是否存在验证错误:如果找到任何验证错误,它将返回“输入”结果(默认情况下),将用户带回到包含验证错误的表单。

如果我们使用默认设置,并且我们的操作未定义“输入”结果,并且存在验证(或偶然发生类型转换)错误,我们将收到一条错误消息,告诉我们没有“输入”为操作定义的结果。

很简单,您可以通过验证配置文件或批注将验证器映射到字段。然后validation通过拦截器堆栈,自定义堆栈或显式或隐式引用该动作,然后将其应用于该动作defaultStack

验证开始时,它将调用验证管理器以执行实际验证并将错误保存到ValidationAware操作中。

您的操作应实现此接口,或仅扩展ActionSupport已实现的位置以保存错误。然后workflow拦截器检查那些错误,如果发现任何错误,则重定向到input结果,如果没有发现错误,则执行操作调用。您还可以通过实现接口将
编程 验证添加到操作中Validateable,该接口ActionSupport默认情况下已实现,因此可以覆盖validate()方法。

作为对基于XML的验证的补充,您还可以应用基于注释的配置。这仅是服务器端验证,客户端验证是通过Struts标签应用于浏览器启用的javascript的,该标签用于将验证内容呈现到要验证的页面上。

所有这些概念都不适用于需要身份验证的操作(除非将身份验证拦截器应用于该操作)。如果您使用JAAS身份验证,则应考虑采取措施来实施PrincipalAware或使用roles拦截器来限制对检查的措施的访问isUserInRole()Action.LOGIN如果未对用户进行身份验证,则可以使用result返回到身份验证拦截器中的登录页面,如是否可以在不使用struts.xml示例的情况下重定向到另一个操作类。



 类似资料:
  • yarn:/jɑ?n/,纱线,奇谈,故事。 Yarn为Node.js平台的代码包管理器。类似于知名的npm包管理器,实际是npm客户端。 特点:快速、安全、可靠。1、离线模式:依赖包只要被装过一次,就会被缓存到本机,再次安装时直接从缓存中读取。2、高确定性:无论安装顺序如何,同样的依赖包都将会以完全一样的方式安装。3、网络性能优异:将请求高效队列化, Yarn可以将安装时间从数分钟减少至几秒钟。Y

  • 主要内容:创建主页面:,创建视图:,创建动作:,配置文件:,此验证是如何工作的?,基于XML的验证:现在,我们将看看如何的Struts验证框架。在Struts的核心有验证框架,协助应用程序的运行规则来执行验证执行之前的操作方法。 通常是使用Javascript来实现客户端验证。但不应单独依赖于客户端验证。最佳实践表明,验证应引入各级应用程序框架。现在,让我们来看看两种方式添加验证我们的Struts项目。 在这里,我们将采取一个例子,Employee 将被捕获的姓名和年龄使用一个简单的页面,我们将

  • 英文原文:http://emberjs.com/guides/concepts/core-concepts/ 要开始学习Ember.js,首先要了解一些核心概念。 Ember.js的设计目标是能帮助广大开发者构建能与本地应用相颦美的大型Web应用。要实现这个目标需要新的工具和新的概念。我们花了很大的功夫从Cocoa、Smalltalk等本地应用框架引入了其优秀的理念。 然而,记住Web的特殊性非常

  • 概述:概述Istio中的流量管理及其功能。 Pilot:引入Pilot,负责在服务网格中管理Envoy代理的分布式部署的组件。 请求路由:描述在Istio服务网格中服务之间如何路由请求。 发现和负载均衡:描述在网格中的服务实例之间的流量如何负载均衡。 处理故障: Envoy中的故障恢复功能概述,可以被未经修改的应用程序来利用,以提高鲁棒性并防止级联故障。 故障注入: 介绍系统故障注入的概念,可用于

  • 以下概念是理解 API 文档的预备知识。它们将在整个过程中被引用,详细说明请参阅本页面。 如果你是新手,就从 入门指南 开始。 Vinyl Vinyl 是描述文件的元数据对象。Vinyl 实例的主要属性是文件系统中文件核心的 path 和 contents 核心方面。Vinyl 对象可用于描述来自多个源的文件(本地文件系统或任何远程存储选项上)。 Vinyl 适配器 Vinyl 提供了一种描述文件

  • 本页列出了Storm 的主要概念, 以及可以获取到更多信息的资源链接, 概念如下: Topologies(拓扑) Streams(流) Spouts Bolts Stream groupings(流分组) Reliability(可靠性) Tasks Workers Topologies(拓扑) 实时应用程序的逻辑被封装在 Storm topology(拓扑)中. Storm topology(拓