`

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
分享到:
评论

相关推荐

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

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

    Struts2 in action中文版

    4.5 构建自定义拦截器 78 4.5.1 实现Interceptor接口 78 4.5.2 构建AuthenticationInterceptor拦截器 79 4.6 小结 82 第5章 数据转移:OGNL和类型转换 84 5.1 数据转移和类型转换:Web应用程序领域的常见任务 85 ...

    struts2讲义_吴峻申

    第3章 Struts2核心技术 37 3.1 使用web.xml配置Struts2实现Web项目Struts2应用 37 3.2 使用配置文件struts.xml实现页面导航定义 38 3.3 使用Action类控制导航业务数据 40 3.4 使用ActionSupport进行校验 42 第4章 另...

    深入浅出struts2

    开发人员还可以通过拦截器(可以自定义拦截器或者使用Struts2提供的拦截器)来对请求进行预处理和后处理,这样一来,处理请求就变得更加模块化,从而进一步减小耦合度。模块化是一个通用的主题——可以通过插件机制...

    深入浅出Struts2(附源码)

    第3章动作与结果 32 3.1 动作类 32 3.2 如何访问资源 34 3.2.1 ServletActionContext对象 34 3.2.2 Aware接口 35 3.2.3 通过Aware接口访问资源 38 3.3 把静态参数传递给一个动作 41 3.4 ActionSupport类 41 ...

    个人知识管理系统 Struts2.0 + Spring + Hibernate

    用户可建立自己的知识分类,对于私密信息(比喻日记等)可增加访问权限,只有登陆用户才能看到,非登陆用户只能浏览公开信息,以及增加新的信息,但无权修改以删除信息,用户权限拦截采用了Struts2的自定义拦截器 ...

    个人知识管理系统 Struts2 + Spring + Hibernate

    用户可建立自己的知识分类,对于私密信息(比喻日记等)可增加访问权限,只有登陆用户才能看到,非登陆用户只能浏览公开信息,以及增加新的信息,但无权修改以删除信息,用户权限拦截采用了Struts2的自定义拦截器 ...

    个人信息管理系统Struts2 spring hibernate dwr

    用户可建立自己的知识分类,对于私密信息(比喻日记等)可增加访问权限,只有登陆用户才能看到,非登陆用户只能浏览公开信息,以及增加新的信息,但无权修改以删除信息,用户权限拦截采用了Struts2的自定义拦截器 ...

    吴天雄--SpringMVC笔记.doc

    SpringMVC笔记内容:第一天(SpringMVC的概述、SpringMVC与Struts2优势分析、重要组件、运行原理、SpringMVC环境搭建、@RequestMapping注解详解、...第三天(SpringMVC异常处理、自定义拦截器、拦截器栈) --author:

    struts2.1宝典

    3、创建拦截器: 2 4.标签中引用资源文件内容 3 5.创建资源文件 3 6.Action中访问servlet API 3 7.Action访问资源文件 3 8.资源文件_各国代码 4 9.将struts.xml分开 4 10全局结果result 4 11模型驱动 4 12.创建...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    第3章 动作与结果 32 3.1 动作类 32 3.2 如何访问资源 34 3.2.1 ServletActionContext对象 34 3.2.2 Aware接口 35 3.2.3 通过Aware接口访问资源 38 3.3 把静态参数传递给一个动作 41 3.4 ActionSupport类 41 3.5 ...

    低清版 大型门户网站是这样炼成的.pdf

    2.6.3 使用自定义拦截器 98 2.7 小结 100 第3章 struts 2标签库详解与ajax技术应用 103 3.1 struts 2主题与模板 103 3.2 struts 2控制标签详解 105 3.2.1 if/elseif/else标签详解 105 3.2.2 iterator标签详解 ...

    Java Web程序设计教程

    6.1.3自定义拦截器 115 6.2类型转换器 117 6.2.1struts2内置类型转换器 117 6.2.2引用类型的转换方式 117 6.2.3特殊对象的类型转换 118 6.2.4类型转换的错误处理 121 6.3输入校验 123 6.3.1输入校验的必要性...

    JFinalDemo流程

    JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。...为您节约更多时间,去陪恋人、家人和朋友 :) ... 体积小仅632K,且无第三方依赖

    Struts2入门教程。包括jquery集成等。入门必看

    6.3 自定义拦截器.............................................................................................................................................45 6.4 综合示例..............................

    java +web开发应用详解

    第2篇为SSH整合技术篇,包括第8-17章,介绍了Struts2常用技术、拦截器、Hibernate高级技术等知识;第3篇为ExtJS框架篇,包括第18-22章,介绍了ExtJS常用组件、表格组件、TreePanel组件等知识;第4篇为综合实例篇,...

    SpringMVC学习笔记整合搭建框架

    8、拦截器 2.Spring入门 2.1.Springmvc是什么 3.3.jdbc编程步骤: 1、加载数据库驱动 2、创建并获取数据库链接 3、创建jdbc statement对象 4、设置sql语句 5、设置sql语句中的参数(使用preparedStatement) 6、通过...

Global site tag (gtag.js) - Google Analytics