关闭

实现一个简单的拦截器

标签: 数据class函数
186人阅读 评论(0) 收藏 举报
分类:

 代码:

reg.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix = "s"  uri ="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Struts 2拦截器应用</title>
</head>
<body>
<h1>用户注册</h1>
<s:form id="id" action="helloaction">
 <s:textfield name="username" label="用户名"></s:textfield>
 <s:password name="pass1" label="密码"></s:password>
 <s:password name="pass2" label="重复密码"></s:password>
 <s:submit value="注册"></s:submit>
</s:form>
</body>
</html>

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>struts2 拦截器应用</title>
</head>
<body>
<h2>用户名:<s:property value="username"/></h2>
<h2>密码:<s:property value="pass1"/></h2>
</body>
</html>

HelloAction.java

package com.action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	
	private String username;
	private String pass1;
	private String pass2;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPass1() {
		return pass1;
	}
	public void setPass1(String pass1) {
		this.pass1 = pass1;
	}
	public String getPass2() {
		return pass2;
	}
	public void setPass2(String pass2) {
		this.pass2 = pass2;
	}
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		if(username!=null && getPass1().equals(getPass2()) && !getUsername().trim().equals("")){
			System.out.print("正在执行action!……");
			return SUCCESS;
		}
		else{
			System.out.print("正在执行action!……");
			return INPUT;
		}
	}
	
	

}

HelloInterceptor.java(拦截器)

package com.inter;

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

public class HelloInterceptor extends AbstractInterceptor {
	private static final long serialVersionUID = 1L;
	public String intercept(ActionInvocation arg0) throws Exception {
		@SuppressWarnings("unused")
		HelloAction haAction=(HelloAction)arg0.getAction();
		System.out.print("拦截器开始运行……");
		String resuletString = arg0.invoke();
		System.out.println("拦截器已结束……");

		return resuletString;
	}

}

FilterHelloInterceptor.java

package com.inter;

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

public class FilterHelloInterceptor extends MethodFilterInterceptor {
	private static final long serialVersionUID = 1L;
	protected String doIntercept(ActionInvocation arg0) throws Exception {
		// TODO Auto-generated method stub
		System.out.print("逻辑的实现过程是一样的,只是方法名不同而已!");
		String reString = arg0.invoke();
		return reString;
	}
	@Override
	public void setExcludeMethods(String excludeMethods) {
		// TODO Auto-generated method stub
		super.setExcludeMethods(excludeMethods);
	}
	@Override
	public void setIncludeMethods(String includeMethods) {
		// TODO Auto-generated method stub
		super.setIncludeMethods(includeMethods);
	}
	
}

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
  <package name="HelloIntercertor" extends="struts-default">
      <interceptors>
          <interceptor name="helloInterceptor" class="com.inter.HelloInterceptor"></interceptor>
      </interceptors>
      
      <action name="helloaction" class="com.action.HelloAction">
          <result name="success">/success.jsp</result>
		  <result name="input">/reg.jsp</result>
		  
		  <interceptor-ref name="defaultStack"></interceptor-ref>
		  <interceptor-ref name="helloInterceptor"></interceptor-ref>
      </action>
  </package>
</struts>

截图:




0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

第一章:一个简单的Web服务器

一些http基础知识,与怎样写一个自己的简单的web服务器
  • levycc
  • levycc
  • 2016-02-08 21:25
  • 1290

springmvc拦截器的实现

1、定义 SpringwebMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理 2、拦截器的定义 定义拦截器,实现HandlerInterceptor接...
  • Sunking_Yin
  • Sunking_Yin
  • 2016-10-07 16:58
  • 1601

【Struts2】:拦截器实现方法过滤

众所周知,我们在使用Struts2进行项目开发的时候,如果为某个Action配置拦截器,那么这个拦截器就会拦截该Action内的所有方法。但是在有些情况下,我们不需要拦截所有的方法,只想拦截指定的方法...
  • u010929604
  • u010929604
  • 2016-05-31 16:32
  • 1771

拦截器概述及其简单实现的一个例子

一、拦截器的实现     实现一个拦截器非常简单。实际上,一个拦截器就是一个普通的类,只是这个类必须实现com.opensymphony.xwork2.interceptor.Interceptor接...
  • woshisap
  • woshisap
  • 2011-07-11 17:41
  • 706

过滤器、监听器、拦截器的区别和一个简单的实例

过滤器、监听器、拦截器的区别和一个简单的实例
  • whh743
  • whh743
  • 2016-12-13 11:17
  • 1441

使用flume问题总结3——一个使用flume拦截器和选择器的简单实例

flume使用选择器和拦截器的实例
  • anjing900812
  • anjing900812
  • 2015-10-09 13:47
  • 1161

Activiti5第七弹,自己实现一个ProcessEngineConfiguration同时自定义拦截器

首先是我自己定义的MyProcessEngineConfiguration的activiti.cfg.xml文件的内容 <beans default-lazy-init="false" xs...
  • u012613903
  • u012613903
  • 2015-01-23 09:50
  • 13286

Spring Boot实现一个监听用户请求的拦截器

项目中需要监听用户具体的请求操作,便通过一个拦截器来监听,并继续相应的日志记录 项目构建与Spring Boot,Spring Boot实现一个拦截器很容易
  • canot
  • canot
  • 2016-10-12 12:43
  • 4296

OkHttp 3.7源码分析(二)——拦截器&一个实际网络请求的实现

转载自:https://yq.aliyun.com/articles/78104?spm=5176.100239.blogcont78105.24.739385aaDJlF2W 前一篇博客中...
  • jiankeufo
  • jiankeufo
  • 2018-01-10 17:28
  • 26

OkHttp 3.7源码分析(二)——拦截器&一个实际网络请求的实现

前一篇博客中我们介绍了OkHttp的总体架构,接下来我们以一个具体的网络请求来讲述OkHttp进行网络访问的具体过程。由于该部分与OkHttp的拦截器概念紧密联系在一起,所以将这两部分放在一起进行讲解...
  • yangxi_001
  • yangxi_001
  • 2017-06-19 12:03
  • 231
    个人资料
    • 访问:381877次
    • 积分:11230
    • 等级:
    • 排名:第1633名
    • 原创:764篇
    • 转载:6篇
    • 译文:0篇
    • 评论:90条
    最新评论