`

struts2第三回:自定以拦截器

    博客分类:
  • J2EE
 
阅读更多
实现一个拦截器并调用。
============下面是LoginIntercepter.java代码===============
package com;

import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginIntercepter extends AbstractInterceptor {

	/**
	 * 常见问题:进过拦截器后,action里面取不到表单的值了。
	 * 是因为xml中没有引入默认的defaultStack
	 * 
	 */
	public String intercept(ActionInvocation arg0) throws Exception {
		System.out.println("进入拦截器:LoginIntercepter");
		String requestUrl=ServletActionContext.getRequest().getRequestURI();
        System.out.println("url:"+requestUrl);
		Map session = arg0.getInvocationContext().getSession();
	     String loginId = (String) session.get("loginId");	     
	     if (!(requestUrl.contains("!doLogin")||loginId!=null)) {
	    //未登录,返回重新登录	
	    	return "login";
			
		}
		return arg0.invoke();
	}

}



============下面是LoginIntercepter.java代码===============
	<package name="abc" extends="struts-default">
		<!--自己写一个拦截器demo -->
		<interceptors>
			<interceptor name="loginCheck" class="com.LoginIntercepter"></interceptor>
		</interceptors>
		<global-results>
			<result name="success">/success.jsp</result>
		</global-results>

		<!-- 标签测试类 -->
		<action name="tagTest" class="com.StrutsTagTestAction">
		
			<result name="login">/login.jsp</result>
			<interceptor-ref name="loginCheck" /><!--配置登录验证拦截器-->
			<interceptor-ref name="defaultStack" /><!--如果自己加入了其他拦截器,则必须手动添加此拦截器,否则在action中会取不到表单的值-->
		</action>
</package>
</struts>


============login.jsp中代码=================
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body >
<form action="tagTest!doLogin.action" method="post">
<!-- 文本框,密码框的使用 -->
userName:<input type="text" name="userName"><br/>
passWord:<input type="password" name="passWord" /><br/>

<input type="submit"e value="login">
<form>
</body>
</html>


==================action中得代码=======================
	public String doLogin() {
        HttpServletRequest requst=ServletActionContext.getRequest();
        requst.getSession().setAttribute("loginId","abing");
        String content=requst.getParameter("content");
		System.out.println("userName:" + userName + "\tpassWord:" + passWord);
			
		return SUCCESS;
	}

这样便实现了一个简单的登录验证拦截器
0
0
分享到:
评论

相关推荐

    struts2第四回:工作流程解析

    开发者可以自定义拦截器以满足特定需求。 5. **Action执行**:执行完所有预设的拦截器后,Struts2会调用Action中的方法,处理实际的业务逻辑。 6. **Result返回**:Action执行完毕后,会返回一个结果(Result)。...

    Struts2 配置第一个拦截器

    我们可以自定义拦截器类,通常会继承`AbstractInterceptor`抽象类以简化实现。例如,我们可以创建一个名为`CustomInterceptor`的拦截器类,实现`intercept`方法,该方法在Action执行前后被调用。 ```java public ...

    Struts通过拦截器实现登录后跳转到登录前页面

    在Struts2中,拦截器扮演着非常重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如验证、日志、事务管理等。本话题主要探讨如何利用拦截器实现在用户成功登录后,将其重定向到登录前访问的页面。 首先,...

    struts2学习笔记十(第10讲.Struts2的核心 拦截器)

    除了这些核心拦截器,开发者还可以自定义拦截器,以满足特定需求,如日志记录、性能监控、权限检查等。自定义拦截器需要实现`Interceptor`接口,并在struts.xml配置文件中注册,以便在拦截器链中使用。 总的来说,...

    Struts2讲义-作者:吴峻申

    - 自定义拦截器需要在`struts.xml`配置文件中注册,并指定其在拦截器栈中的位置。 - **Struts2文件上传拦截器应用**: - Struts2提供了内置的文件上传功能,使用起来非常方便。 - 文件上传功能通常由`...

    拦截器和struts2拦截器的使用

    在Struts2框架中,自定义拦截器是一种非常实用的功能,允许开发者根据应用需求扩展或覆盖默认行为。下面详细介绍如何创建并使用自定义拦截器。 **第一步:创建拦截器类** 创建一个普通类,并让其继承`...

    Struts2 拦截器 Interceptor

    2. **拦截器栈**:多个拦截器的集合称为拦截器栈,Struts2默认提供了几个内置的拦截器栈,如`defaultStack`、`jsonStack`等,也可以自定义拦截器栈。 3. **拦截器配置**:拦截器可以通过Struts2的配置文件`struts....

    struts拦截器jar 包

    总结来说,"struts拦截器jar包"是指专门为Struts 1.x框架提供拦截器功能的第三方库,`saif-0.1.jar`和`saif-spring.jar`可能是用于实现特定拦截逻辑或整合Spring框架的扩展库。了解并正确使用这些jar包能够有效地...

    Struts2 拦截器-v3

    4. **自定义拦截器**:当默认拦截器无法满足需求时,开发者可以创建自己的拦截器。这涉及到编写实现`Interceptor`接口的类,并在配置文件中声明和配置。 5. **配置拦截器**:在`struts.xml`或相关的配置文件中,...

    简单介绍Struts2中的拦截器的小示例

    Struts2是一个强大的Java Web框架,它为开发者提供了一种优雅的方式来组织...通过这个小示例,初学者可以了解到Struts2拦截器的基本概念、配置方式以及如何自定义拦截器。这将为后续更深入的学习和实践打下坚实的基础。

    Struts2拦截器

    2. **自定义拦截器** - 如示例代码所示,创建自定义拦截器需要继承`AbstractInterceptor`类,并重写`intercept()`方法。在这个方法中,可以添加自定义的行为,如记录日志。`ActionInvocation`对象提供了对Action...

    Struts2_拦截器

    如果需要,开发者也可以添加自己的自定义拦截器来满足特定的需求。 拦截器链是拦截器工作中的一个核心概念。拦截器链可以被看作是一系列拦截器的有序组合,当需要访问被拦截的方法或字段时,拦截器链中的拦截器会...

    struts2学习笔记十一(第11讲.Struts2的核心 拦截器续)

    - **自定义拦截器**:开发者可以通过实现`Interceptor`接口或继承`AbstractInterceptor`抽象类来创建自己的拦截器。 - **配置拦截器**:在struts.xml配置文件中,可以定义拦截器栈,将拦截器按照需要的顺序排列,并...

    struts2拦截器的使用

    如示例代码所示,创建自定义拦截器通常需要继承`AbstractInterceptor`类,并重写`intercept`方法。在这个方法中,你可以添加任何需要在Action执行前后进行的操作。例如,在`TimeInterceptor`中,通过获取当前时间并...

    信息系统软件设计:第3章 Struts2.0-拦截器.ppt

    【信息系统软件设计】中的【Struts2.0-拦截器】是软件开发中非常关键的概念,特别是对于基于Java的企业级Web应用。...在实际项目中,根据需求可以自定义拦截器,实现特定的功能,比如登录检查、日志记录、性能监控等。

    Struts2(4)拦截器与验证框架

    #### 三、自定义拦截器 1. **创建拦截器** - **类级拦截器**:实现`Interceptor`接口并重写`intercept`、`init`和`destroy`方法。 - **方法级拦截器**:继承`MethodFilterInterceptor`类,并重写`doIntercept`...

    IBM-struts2内部培训资料

    3. **第三章:struts2配置详解**:详细解析XML配置文件(struts.xml)的结构和用法,包括Action配置、结果映射、拦截器栈配置等,同时也会涉及动态方法调用和注解配置。 4. **第四章:struts2中的OGNL**:OGNL...

    struts2 实战 实例代码

    8. **插件和第三方库集成**:Struts2允许扩展,如Spring插件可以方便地与Spring框架集成,实现依赖注入;Hibernate插件则简化了与ORM框架的配合。 9. **测试**:Struts2支持单元测试和集成测试,可以使用JUnit进行...

    struts2框架模拟-教学示范代码

    Struts2提供了一系列内置的拦截器,同时允许自定义拦截器以满足特定需求。 4. **结果类型(Result)**:Action执行完成后,会返回一个结果类型,决定如何展示给用户。常见的结果类型有dispatcher(用于转发到JSP...

Global site tag (gtag.js) - Google Analytics