【发布时间】:2012-06-24 06:18:34
【问题描述】:
可以使用拦截器验证对操作的请求。此外,可以使用空操作声明来避免对 JSP 页面的直接请求。是这样的;
<action name="home" >
<result>home.jsp</result>
</action>
我想验证对 JSP 页面的调用。因为我觉得一个简单的方法可以添加一个带有Interceptor 的动作(ActionSupport),它检查动作名称(并使用会话等进行一些验证)。但我怀疑它是否会降低性能,因为动作类什么都不做,只执行它的execute()(无用的任务......),并且应该有一个 empty Action .(但是:正如我在 Struts2 上阅读的一些文档一样,据说即使我们不添加 Action 类,框架本身也会添加一个返回“成功”的动作类,因此添加一个动作类或不是我们自己,不影响新)
无论如何,我想知道您最好的方法是验证或授权访问某些 JSP 页面。(页面数可以很多.. 不仅仅是一个 jsp 页面)
添加:
示例:
可以这么说,有一些限制页面,所有用户都无法访问,例如用户的帐户页面只能访问登录用户。可以有更多此类页面。如果请求到达此类页面,则必须验证用户。然后,如果请求来自空/匿名操作(如上面的代码片段 - 仅操作名称 - 没有真实类中所述),如何验证此类请求以JSP 页面?是否应该为此使用操作类?
【问题讨论】:
-
一些JSP页面是什么意思?调用 S2 操作以准备值堆栈并使 S2 特定数据准备好使用,其中包括 S2 标记和任何其他 S2 特定功能。我不确定您想在 JSP 页面中进行哪些确切的验证
-
您可以通过拦截器进行验证,对于授权,您可以定义自定义拦截器。您认为导致性能问题的原因是什么?
-
@Umesh Awasthi。感谢您的关注,我解释了更多。
-
@Mohana Rao SV,感谢您的建议。你能解释一下我如何在拦截器的
intercept()中处理它吗? .我知道如何验证具有真实类的动作,而不是没有真实类的 JSP。我们应该为此添加一个类吗? -
@AashMaharoon:详情见我的回答
标签: java jsp jakarta-ee struts2