`
EJB_wawa
  • 浏览: 107096 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java Filter 权限过滤

阅读更多
java Filter 权限过滤
package com.ifm.util.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class AuthFilter implements Filter {

public void destroy() {

}

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
/** 1,doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括
*    表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过
*    滤器中忽略此参数。最后一个参数为FilterChain,此参数用来调用servlet或JSP页。
*/

HttpServletRequest request = (HttpServletRequest)servletRequest;
/** 如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中
*    无法得到的方法,就要把此request对象构造成HttpServletRequest
*/
HttpServletResponse response = (HttpServletResponse)servletResponse;

String currentURL = request.getRequestURI(); //取得根目录所对应的绝对路径:

String targetURL = currentURL.substring(currentURL.indexOf("/", 1),
currentURL.length()); //截取到当前文件名用于比较

HttpSession session = request.getSession(false);

if (!"/login.jsp".equals(targetURL)) {
//判断当前页是否是重定向以后的登录页面页面,如果是就不做session的判断,防止出现死循环
if (session == null || session.getAttribute("user") == null) {
//*用户登录以后需手动添加session
System.out.println("request.getContextPath()=" + request.getContextPath());
response.sendRedirect(request.getContextPath() + "/login.jsp");
//如果session为空表示用户没有登录就重定向到login.jsp页面
return;
}
}
//加入filter链继续向下执行
filterChain.doFilter(request, response);
/**   调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作
*     为它 的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另
*     一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。
*/
}

public void init(FilterConfig filterConfig) throws ServletException {

}
}

然后在配置文件web.xml里添加: (请注意,过滤是在serlvet规范2.3版中初次引入的。因此,web.xml文件必须使用DTD的2.3以上版本。)


<filter><filter-name>AuthFilter</filter-name><filter-class>com.drp.util.filter.AuthFilter</filter-class></filter><filter-mapping><filter-name>AuthFilter</filter-name><url-pattern>*.jsp</url-pattern>//表示对所有jsp文件有效</filter-mapping>

分享到:
评论

相关推荐

    java后台权限管理系统源码(spring boot+mvc+mybatis).zip

    java后台权限管理系统源码(spring boot+mvc+mybatis)。 项目是maven,相应的jar包也在压缩包里。项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器)...

    六个有用的java过滤器

    六个有用的java过滤器,包括使浏览器不缓存页面的过滤器、检测用户是否登陆的过滤器、字符编码的过滤器、资源保护过滤器、利用Filter限制用户浏览权限、利用Filter过滤非法关键字。

    Java Web基础入门第七十九讲 Filter(过滤器)——Filter(过滤器)常见应用(三):权限管理系统(下)-附件资源

    Java Web基础入门第七十九讲 Filter(过滤器)——Filter(过滤器)常见应用(三):权限管理系统(下)-附件资源

    java中需要用到的各种过滤器

    java中各种过滤器 浏览器不缓存页面的过滤器 检测用户是否登陆的过滤器 资源保护过滤器 利用Filter限制用户浏览权限

    java web 购物车,字符过滤器,权限过滤器,详细备注,适合初学者

    java web 购物车,字符过滤器,权限过滤器,详细备注,适合初学者,servlet ,jsp,有数据库,简单易懂,

    CommonFilter.java

    JEECG权限根据业务数据的机构字段,实现的工具类。可用于datagrid方法中,list页面过滤,add,update页面也可以

    servlet过滤器技术实例,

    servlet,filter,过滤器技术servlet,filter,过滤器技术

    深入了解Java中的Filter过滤器

    Filter也称之为过滤器,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。下面我们来简单学习一下吧

    预防XSS攻击和SQL注入XssFilter

    (11)提升用户权限,包括进一步渗透网站; (12)传播跨站脚本蠕虫等; 三、过滤器配置 web.xml配置 <filter> <filter-name>XssFilter</filter-name> <filter-class>com.xxx.Filter.XssFilter</filter-class> ...

    过滤器 乱码,非法字符,权限

    此资源系本人在培训机构的资料,资源包含过滤器乱码过滤、过滤非法字符、权限过滤、病毒过滤、HTML标签过滤、js脚本过滤等代码演示实例和讲解文档,内容详细易懂,希望对象大家有所帮助!

    Java 权限管理系统 shiro + ssm实现

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

    jackson-dynamic-filter:一种使用Jackson来动态确定过滤器的简便方法

    对于Spring Boot: 要求Java 8 支持的Spring IO平台: 下载要使用Maven添加依赖项,请使用以下命令: < dependency>< groupId>com.github.shihyuho</ groupId>< artifactId>jackson-dynamic-filter</ artifactId>...

    Java EE常用框架.xmind

    在配置文件上配置配置filter规则。/items/queryItems.action = perms[item:query] 2.用户请求url,/items/queryItems.action 3.被PermissionsAuthorizationFilter拦截,发现需要“item:query”权限 4....

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    5.2.1 public权限修饰 134 5.2.2 关于构造函数 136 5.2.3 构造函数与方法重载 137 5.2.4 使用this 139 5.2.5 static类成员 142 5.2.6 不定长度自变量 148 5.2.7 内部类 150 5.2.8 传值调用 151 5.3...

    整合springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap实现权限管理文件上传下载多数据源切换等功能

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

    Java学习指南(7) 网站中级篇 JavaEE / Filter

    Filter 过滤器 | Session 会话 | 用户权限 | 伪静态 | 网站部署 ... 二、主要内容  开发环境仍然使用 MyEclipse2016 + tomcat8 * 文件的自定义下载 * 伪静态文件,尤其是伪静态JS的应用 * 会话的概念及...

    SpringBoot一步配置Filter

    Filter:过滤器,属于Servlet规范中三个技术之一,本质是一种特殊Java类,可以拦截访问Web资源的请求与响应等操作,实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 在使用servlet的时候,...

    基于java的企业级应用开发:拦截器.ppt

    15.1 拦截器概述 Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。 ...

    chapter11_4.rar

    过滤器filter是servlet技术中心最实用的技术。过滤器是处于客户端与服务器资源文件之间的一道过滤网,过滤一些不符合要求的请求。通常他被用作Session校验,判断用户权限,如果不符合设定条件,就会被拦截到特殊的...

Global site tag (gtag.js) - Google Analytics