引入拦截器最好的好处就是,实现了对action通过操作的可插拔管理,这样的可插拔管理基于struts.xml文件来配置实现。
下面看看,到底怎么来配置拦截器的呢。
<interceptors>
<!-- 基本拦截器的配置--!>
<interceptor name = "alias" class = "com.opensymphony.xwork2.interceptor.AliasInterceptor" />
<interceptor name = "autowiring" class = "com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor" />
</interceptor>
</interceptors>
在struts中,内置的拦截器其实已经能够完成大部分的拦截任务,为了学习,下面我们看下自定义的拦截器要怎么使用:要自定义拦截器类,必须直接或间接实现Interceptor接口:
public interface Interceptor extends Serializable {
void destroy();
void init();
String intercept(ActionInvocation invocation) throws Exception;
}
public class LoginInterceptor extends AbstractInterceptor{
private static final long serialVersionUID = -5325530121178579784L;
public String intercept(ActionInvocation ai) throws Exception {
Map session = ai.getInvocationContext().getSession();
String username = (String)session.get("user");
if(username != null && username.length() > 0){
return ai.invoke();
}else{
ActionContext ac = ai.getInvocationContext();
ac.put("abc", "未登录");
return Action.INPUT;
}
}
}
只要再像上面配置文件一样配置下action, 那么就可以使用登录拦截器了。
分享到:
相关推荐
JavaScript获取网页表单的action属性是一种常用的操作,通常用于获取表单提交时要发送到的URL地址。在Web开发中,表单是用来收集用户输入数据并将其发送到服务器的HTML元素。action属性指定了表单提交后,服务器处理...
Spring in Action CN.001<br>Spring in Action CN.002<br>Spring in Action CN.003<br>Spring in Action CN.004<br>Spring in Action CN.005<br>Spring in Action CN.006<br>Spring in Action ... <br>本书信息:...
"Action_Portable"是一款被誉为最强大的录屏软件,它的便携式版本允许用户在无需安装的情况下,随时随地进行高质量的屏幕录制。Action!以其出色的性能、丰富的功能和易用性赢得了用户的广泛赞誉。以下是对这款软件的...
### jsp自动调用action详解 #### 一、概述 在Web开发中,尤其是在使用Java Server Pages (JSP)与Struts框架时,有时需要在用户访问某个初始页面(如欢迎页)时自动触发一系列后端操作(如执行某个Action)。这种...
在Struts2框架中,自定义Action是实现业务逻辑的核心组件。这个教程将带你了解如何通过实现`Action`接口来创建一个简单的登录功能。首先,我们需要理解Struts2的架构和Action类的角色。 Struts2是一个基于MVC...
在开发Java Web应用程序时,尤其是使用Struts2或者Spring MVC等MVC框架时,我们经常需要在多个Action之间进行跳转并传递参数。这在构建动态、交互性强的Web应用中是必不可少的。本项目旨在演示如何在自定义的Action...
Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...
在某些情况下,我们可能需要启动多个Service来执行不同的任务,但问题在于,如果这些Service的Intent ACTION(动作)相同,可能会引发冲突。本篇文章将深入探讨这个主题,并提供一个验证示例。 当多个Service声明了...
Action 之间的跳转 Action 之间的跳转是 Struts2 框架中的一种机制,允许不同的 Action 之间进行跳转,以实现复杂的业务逻辑。这种机制可以分为两种类型:chain 和 redirect-action。 1. Chain 类型 当 type 为 ...
13. `ACTION_DATA_ACTIVITY_STATE_CHANGED_ACTION` 和 `ACTION_DATA_CONNECTION_STATE_CHANGED_ACTION`:这两个广播分别用于通知电话的数据活动状态和数据连接状态变化,对于网络相关功能的监控非常有用。...
当我们想要从应用中拨打电话时,就需要用到Intent ACTION_CALL这个知识点。接下来,我们将深入探讨如何在Android中使用Intent ACTION_CALL来实现拨打电话的功能。 首先,理解Intent ACTION_CALL的含义是关键。...
在表单提交时,我们可以通过`action`属性设置表单数据的提交地址,即URL。例如: ```html <form action="doSomething" method="post"> <!-- 表单内容 --> ``` 这里的`doSomething`就是Action方法的标识,它会被...
### Action的三种类型详解 在自动化测试工具QTP(Quick Test Professional)中,Action是一种重要的概念,它代表了脚本中的一个独立执行单元。通过合理地组织和利用Action,可以帮助测试人员更高效、灵活地进行自动...
form name="myform" id="myform" action="ssss" method="post" onsubmit="getUrl();"> javascript方法: [removed] function getUrl(){ $('form').attr('action','new_url'); } [removed] 或者用单纯的...
在Android应用开发中,Action Bar(操作栏)是界面设计中的一个重要组成部分,它为用户提供了一种统一且高效的交互方式。这个部分将详细讲解Action Bar的基本概念、功能、设计原则以及如何在代码中实现。 一、...
### Action传递参数的三个方法 在自动化测试领域,特别是使用QTP(Quick Test Professional)工具进行脚本开发时,参数化是一种非常重要的技术。通过参数化可以提高测试脚本的复用性和灵活性,使得测试更加高效。...
Spring in Action CN.001<br>Spring in Action CN.002<br>Spring in Action CN.003<br>Spring in Action CN.004<br>Spring in Action CN.005<br>Spring in Action CN.006<br>Spring in Action ... <br>本书信息:...
"Struts2 in Action" 是一本深入探讨Struts2框架的专业书籍,旨在帮助开发者掌握这一框架的核心概念和实践技巧。这本书的中文版不仅提供了理论知识,还附带有配套的源代码,方便读者进行实践操作,加深理解。 ...
### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...
在讨论Struts2框架时,我们经常会遇到一个关键词——Action,它在Struts2中扮演着非常关键的角色。今天我们就来探讨Action的含义、作用以及在Struts2框架中的配置。 首先,Action在Struts2中包含三层含义。第一层,...