`
退役的龙弟弟
  • 浏览: 453723 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个过滤器实例

 
阅读更多
public class AuthFilter implements Filter {

	public void init(FilterConfig fc) throws ServletException {
		System.out.println("in filter,init()...");
	}

	public void doFilter(ServletRequest servletRequest,
			ServletResponse servletResponse, FilterChain filterChain)
			throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest) servletRequest;
		HttpServletResponse response = (HttpServletResponse) servletResponse;
		String currentURL = request.getRequestURI();
		
		if(request.getSession().getAttribute("UISORFGAP")==null || "".equals(request.getSession().getAttribute("UISORFGAP"))){
			//拿到判断是否存在前置机和导入服务器标识
			request.getSession().setAttribute("UISORFGAP", UISOrFGAPMarkUtil.getFgapFlag());
		}
		
		if(currentURL.endsWith(".jsp")||currentURL.endsWith(".action")){
			if(currentURL.indexOf("verifyCodeImg.jsp") == -1){
				HttpSession session = request.getSession(true); // 没有返回一个新的.
				LoginUser loguser = (LoginUser) session.getAttribute("loginUser");
				String path = request.getContextPath();
				if(currentURL != null && (currentURL.indexOf("/login.jsp") == -1 && currentURL.indexOf("isLogin_log.action") == -1)){
					if(loguser == null && currentURL.indexOf("forword.jsp")==-1){
						response.sendRedirect(path + "/forword.jsp"); 
						return;
					}else if(currentURL.indexOf("forword.jsp")!=-1){
						filterChain.doFilter(request, response);
						return;
					}else if(loguser != null){
						filterChain.doFilter(request, response);
						return;
					}
				}else{
					filterChain.doFilter(request, response);
					return;
				}
			}else{
				//image过滤掉
				filterChain.doFilter(request, response);
				return;
			}
		}else{
			// js css 图片过滤 
			filterChain.doFilter(request, response);
			return;
		}
	}

	public void destroy() {
		System.out.println("in filter,destroy()...");
	}

}

 在web.xml中的配置

 

<filter>
		<filter-name>AuthFilter</filter-name>
		<filter-class>
			com.topwalk.fgap.utils.AuthFilter
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>AuthFilter</filter-name>
		<url-pattern>*.jsp</url-pattern>
		<url-pattern>*.action</url-pattern>
	</filter-mapping>

 

分享到:
评论

相关推荐

    servlet过滤器实例经典过滤器

    本教程将深入讲解如何配置和使用Servlet过滤器,以及介绍五个经典的过滤器实例。 首先,让我们理解Servlet过滤器的基本概念。根据Java Servlet规范,过滤器(Filter)是一个实现了javax.servlet.Filter接口的类,它...

    java过滤器简单实例

    在这个简单的实例中,我们将探讨如何创建和使用一个基本的Java过滤器。 首先,我们需要实现`javax.servlet.Filter`接口,并覆盖其核心方法`doFilter()`。`doFilter()`方法在每次请求到达目标资源前和离开时都会被...

    jsp过滤器的使用(含一个project实例说明)

    本篇将深入探讨JSP过滤器的使用,并通过一个实际项目案例来展示其应用。 ### 1. JSP过滤器基础 JSP过滤器是基于Servlet规范的,遵循`javax.servlet.Filter`接口。它在用户请求到达目标资源之前被调用,可以在请求...

    包含过滤器的一个简单登陆实例

    本实例“包含过滤器的一个简单登录实例”将引导我们了解如何在实际项目中运用过滤器进行用户验证,确保只有合法用户才能访问受保护的资源。 过滤器在Java Web开发中被广泛应用,它们是Servlet规范的一部分,定义在`...

    struts2实例 自定义过滤器 文件上传下载 登录功能

    在本实例中,可能包含一个用于处理特定请求或者对用户身份验证的过滤器。 接着,我们来看文件上传下载功能。在Struts2中,文件上传主要依赖于Apache Commons FileUpload库。开发者需要在Action类中创建适当的字段来...

    servlet过滤器实例代码

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。在这个实例代码中,我们将深入探讨Servlet过滤器的使用,以及如何通过它来增强应用程序的...

    过滤器处理中文

    首先,定义一个过滤器实例,指定过滤器的名称`encodingfilter`和对应的类`xiaogu.EncodingFilter`。然后,通过`&lt;init-param&gt;`标签设置编码方式,这里是`UTF-8`。最后,通过`&lt;filter-mapping&gt;`指定过滤器应作用于所有...

    Java中文显示过滤器实例.rar

    "Java中文显示过滤器实例"就是一个针对这个问题的解决方案,它可以帮助开发者避免出现中文乱码的问题,使得程序能更有效地处理中文数据。在这个实例中,我们将深入探讨Java中的编码问题,以及如何使用过滤器来解决...

    servlet过滤器技术实例,

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者Servlet响应返回客户端之前进行拦截处理。在本实例中,我们将深入探讨Servlet过滤器(Filter)的使用和实现,以及它在实际应用...

    Servlet过滤器小实例

    本实例的目标是设计并实现一个简单的Servlet过滤器,用于检查用户的登录状态。具体来说,当用户通过正常的登录流程进入系统后,服务器会在用户的会话(Session)中存储一个表示已登录用户的对象(命名为"user")。...

    QT 事件过滤器实例

    在“QT事件过滤器实例”中,描述提到监听鼠标移入移出事件。这是常见的用户交互事件,对应于QT的`QEvent::Enter`和`QEvent::Leave`类型。为了实现这一功能,你需要创建一个继承自`QObject`的新类,并重写`...

    ffmpeg filter过滤器基础实例以及全面解析

    FFmpeg Filter 过滤器是FFmpeg项目中用于音视频数据处理的一个重要组件,通过libavfilter库提供丰富的视频和音频过滤功能。这些过滤器可以在不同阶段对媒体数据进行操作,包括但不限于格式转换、帧率调整、大小缩放...

    jsp中的过滤器(含例子)

    这里,我们定义了一个名为`CharacterEncodingFilter`的过滤器,并将其映射到所有URL(`/*`),意味着任何请求都会经过这个过滤器。 3. 最后,部署应用并测试。现在,无论用户发送什么请求,服务器都会自动将字符...

    Vue实现自带的过滤器实例

    例如,创建一个过滤器用来将数字转换为中文数字表示: ```javascript Vue.filter('chineseNum', function(value) { // 实现将阿拉伯数字转为中文数字的逻辑 }); ``` 然后在模板中使用: ```html {{ number | ...

    02 计时过滤器实例.exe

    02 计时过滤器实例.exe02 计时过滤器实例.exe

    过滤器的实例

    过滤器

    管道过滤器程序,主要用java实现

    2. **Filter链**:多个过滤器通过实例化并链接起来形成一个链。数据从一端进入,依次通过每个过滤器,最后从另一端出来。Java中可以使用`FilterChain`对象来管理这个链。 3. **Filter的组合**:过滤器可以自由组合...

    过滤器文档过滤器使用中的方法过滤器.pdf

    如果一个过滤器决定阻止请求,那么后续的过滤器和目标Servlet都不会收到这个请求。 总结起来,过滤器是Web应用中不可或缺的一部分,它们提供了强大的功能,如数据安全、编码一致性以及自动化操作。通过合理地使用...

    DirectShow过滤器-写MP4视频文件过滤器

    本过滤器将未压缩的视频流RGB32编码为H264格式,将未压缩的音频流PCM编码为AAC格式,写入MP4文件。有2个输入引脚:视频引脚和音频引脚。 参见本过滤器的介绍文章:...

    Servlet过滤器的简单使用源码+文档

    1. `init(FilterConfig config)`:在过滤器实例化后并首次被调用时,服务器会调用这个方法。在这里,可以初始化过滤器的配置参数,这些参数通常在`web.xml`文件中定义。 2. `doFilter(ServletRequest request, ...

Global site tag (gtag.js) - Google Analytics