检查Struts 2 Web应用程序中的会话值

1 java authentication session jsp struts2

我正在使用Struts 2创建一个Web应用程序.我有一个登录页面.当用户在输入用户名和密码后单击登录按钮时,将检查凭据,如果发现凭据正确,则会创建会话并设置其属性,并将控制重定向到WELCOME JSP.

welcome.jsp打开之前,我想检查是否设置了会话属性.如何在Struts 2中做到这一点?

任何人都可以告诉我拦截器的概念.我读到我们创建拦截器以在调用动作之前或之后执行任何功能.我是否可以在每次调用WELCOME JSP之前创建一个检查会话是否已设置的拦截器.

Ume*_*thi 5

您可以使用<s:if>标记在Session中测试您的属性的存在.我假设您在动作类中设置了值,这里是如何在jsp页面中执行此操作

<s:if test="%{#session.logged_in ==true}">
Run Code Online (Sandbox Code Playgroud)

我假设在这里我设置一个标志,指示用户是否以类似的方式登录,您可以根据您的要求进行测试

对于拦截器,它们是由Struts2开箱即用的实用程序类,以使您的生活更轻松.Interceptors只是具有某些功能的java类,由框架提供,其中一些是

  1. 上传文件
  2. 国际化
  3. PARAMS
  4. 令牌等

这些拦截器是根据您的应用程序中配置的拦截器堆栈调用的,它们将在2个位置调用

  1. 当您向行动发送请求时
  2. 当请求处理完成并且查看呈现时.

在第一种情况下,它们将在您的动作执行或您定义的自定义方法被调用之前被调用,拦截器负责向您的动作类提供所需的数据,拦截器在您的动作被调用之前完成的一些工作是

  1. 文件上传
  2. 处理i18n
  3. 将表单值传递给操作类中的受尊重字段
  4. 验证您的数据

struts2提供了一定数量的拦截器,你可以看一下struts-defaultxml.

您可以创建任意数量的拦截器并将它们配置为根据您的要求执行,您需要扩展AbstractInterceptor一个提供您的自定义逻辑内部intercept(ActionInvocation invocation)方法我建议您按照下面提到的链接获取更多概述

构建你自己的拦截器 Struts2拦截器 写入拦截器