`
rguess
  • 浏览: 70291 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

servlet进行权限控制及排除指定方法

阅读更多
在java web开发过程中,我们需要对其进行权限的控制,下面介绍一下sevrvlet进行权限的控制。

[size=medium]配置一个servlet拦截器Filter

1.写一个Filter类需要实现servlet Filter方法如代码

public class LoginFilter implements Filter{

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
			
		HttpServletResponse resp = (HttpServletResponse)response;
		HttpServletRequest req = (HttpServletRequest)request;
		
		System.out.println(req.getRequestURL());
		String requestURL = req.getRequestURL().toString();
		String requestName = requestURL.substring(requestURL.lastIndexOf("/")+1);
		System.out.println(requestName);

		//拦截地址中login.html及以.js和.css结尾的请求地址
	if(requestName.equals("login.html")||requestName.matches(".*\\.js$")||requestName.matches(".*\\.css$")){
			System.out.println(requestName);
			//跳到下一步请求
			chain.doFilter(request, response);
			return;
		}
		
		HttpSession session = req.getSession(true);
		
		String username =  (String) session.getAttribute("username");
		if(username == null||"".equals(username)){
			resp.sendRedirect("/cookies/login.html");
		}else {
			chain.doFilter(request,response);
		}
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

}



注意:在这个类中,可以看到:
//拦截地址中login.html及以.js和.css结尾的请求地址
	if(requestName.equals("login.html")||requestName.matches(".*\\.js$")||requestName.matches(".*\\.css$")){
			System.out.println(requestName);
			//跳到下一步请求
			chain.doFilter(request, response);
			return;
		}

我们可以拦截一些你想另外处理的请求,这里我拦截了login.html及以.js和.css(正则表达式)结尾的请求地址,不对其进行处理(chain.doFilter(request, response);)直接跳到下一个链。

chain.doFilter(request, response),可以参考http://blog.csdn.net/huangcongjie/article/details/7377422

2.filter写好之后,在web.xml中进行配置:
	<filter>
		<filter-name>/filter</filter-name>
		<filter-class>org.guess.filter.LoginFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>/filter</filter-name>
		<url-pattern>*</url-pattern>
	</filter-mapping>

<url-pattern>*</url-pattern>配置可参考http://ghsea.iteye.com/blog/181485

这里我通过<url-pattern>*</url-pattern>把所有的请求(包括webservice的服务)都拦截到了这个拦截器里面,当然你也可以更灵活的配置。

以上就完成了,servlet的一个简单的拦截器的配置


语言组织能力有待加强!!!
分享到:
评论

相关推荐

    防止SpringMVC拦截器拦截js等静态资源文件的解决方法

    这种方法的优点是不需要在SpringMVC的拦截器中进行繁琐的配置,而且默认的Servlet可以很高效地处理静态资源请求。不过,这种方法的缺点是,需要在web.xml中手动配置,而且可能会增加服务器的负载,因为静态资源需要...

    cas-client扩展拦截器支持excludes

    描述中提到的“只是简单的在filter中进行过滤”,这里的“filter”指的是Servlet过滤器,是Java Web开发中的一种组件,它可以在请求到达目标Servlet或JSP之前对其进行处理,也可以在响应离开应用程序返回给客户端...

    自己spring boot 拦截器

    在上述代码中,我们通过`addPathPatterns()`指定需要拦截的URL模式,并通过`excludePathPatterns()`排除特定的URL,例如登录和登出页面,这些页面通常不需要进行权限检查。 通过这种方式,你可以根据业务需求定制...

    SSM项目 拦截器(csdn)————程序.pdf

    SSM项目中的拦截器是一种重要的机制,用于在控制器方法调用前后执行某些操作。在本文中,我们将详细介绍如何在SSM项目中实现登录拦截器,并配置其在SpringMVC框架中的使用。 拦截器的概念 在SpringMVC框架中,拦截...

    webfilter的教程

    `Servlet和Filter的url匹配url-pattern-JSP编程教程`以及`servlet和JSP过滤器Filter-JSP教程`可能提供了关于如何配置`Filter`以匹配特定URL模式的示例,这对于控制访问权限和执行预处理逻辑非常重要。 综上所述,`...

    企业内高技能(JAVA)(三级)理论知识复习题(带答案和解释)

    在本篇文章中,我们将会对JAVA三级理论知识中的关键概念进行复习,这些内容包括JSP标签库的使用、Servlet的配置及访问、过滤器的配置及作用范围,以及会话跟踪技术。下面是对文章中提到的各个知识点的详细解释: ##...

    DWR基础应用教程direct.ppt

    如果使用`exclude`,则默认策略是允许所有方法,仅排除列出的方法。 例如,以下配置允许客户端调用`getAllUsers`和`saveUser`两个方法: ```xml ``` 最后,`&lt;convert&gt;`元素用于指定对象转换规则,例如,...

    SpringBoot拦截器实现登录拦截的方法示例.docx

    此外,`excludePathPatterns()`方法允许你排除某些URL不经过拦截器,这在处理登录和登出等特殊操作时非常有用。 在实际项目中,可能还需要考虑更多细节,如使用session管理用户状态、使用统一的错误处理机制、结合...

    spring-boot添加 拦截器

    在Web开发中,拦截器常被用于实现如登录验证、权限控制、日志记录等功能。本篇文章将详细探讨如何在Spring Boot中添加和使用拦截器来实现登录拦截。 首先,我们需要了解Spring Boot中的拦截器是如何工作的。在...

    若依问题-201811151

    系统允许自定义访问权限,通过实现特定的权限控制策略,可以对用户的角色和操作进行细粒度的控制。 【打包成war包】 若依项目可以被打包成WAR文件,用于在Tomcat等Servlet容器中部署。需要正确配置pom.xml文件以...

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

    拦截器主要用于在用户请求到达控制器处理逻辑之前或之后进行特定的操作,比如权限检查、日志记录、性能监控等。本文将深入探讨Spring MVC中的拦截器,包括其定义、配置以及执行流程。 ### 1. 拦截器概述 拦截器在...

    Springboot项目使用拦截器方法详解

    Spring Boot是一个用于简化Spring应用的初始搭建以及开发过程的框架,而拦截器是Spring MVC提供的一种机制,用于在请求到达Controller方法之前或之后进行某些操作,例如验证用户权限、记录日志、权限检查等。...

    WebMvcConfigurer拦截器的使用

    拦截器(Interceptor)是Spring MVC中的一种重要机制,它在请求被控制器处理之前和之后执行特定的操作,例如记录日志、权限检查、性能监控等。在Spring MVC中,我们通常通过实现`HandlerInterceptor`接口或者继承`...

    SpringMVC 拦截器不拦截静态资源的三种处理方式方法

    在SpringMVC中,我们通常会使用拦截器(Interceptor)来实现权限控制、日志记录、性能统计等功能。然而,这些拦截器有时会错误地拦截到静态资源,如.js、.css、.png等文件,导致页面加载异常。本文将详细介绍三种...

    tomcat报错Unable to find 'struts multipart saveDir解决

    通过查看这个截图,你可以找到更具体的错误信息,以便进行更精确的故障排除。 总之,解决“Unable to find 'struts multipart saveDir'”这个错误需要检查Struts配置、目录存在性和权限设置,有时还需要考虑系统...

    SpringMVC拦截器的使用

    它可以用来实现诸如权限验证、日志记录、性能统计、缓存控制等多种功能。在这个主题中,我们将深入探讨如何使用Spring MVC的Interceptor进行登录验证。 首先,我们了解拦截器的基本概念。在Spring MVC中,拦截器是...

    SpringBoot中自定义拦截器示例代码

    在`addInterceptors()`方法中,可以使用`PathMatchConfigurer`的`addPathPatterns()`方法来指定拦截哪些URL。 ```java registry.addInterceptor(new CustomInterceptor()) .addPathPatterns("/api/**") // 拦截...

    拦截器与冲突解决

    - **调整拦截器顺序**:通过`HandlerInterceptorAdapter`的`preHandle`方法返回值控制拦截器执行顺序,返回true表示继续处理,false则中断后续拦截器及控制器的执行。 - **检查注解配置**:确保自定义拦截器的注解...

    Spring Boot配置拦截器及实现跨域访问的方法

    Spring Boot配置拦截器及实现跨域访问的方法 在Spring Boot框架中,拦截器是实现诸如日志记录、权限检查、性能监控等通用功能的有效手段。拦截器可以在请求到达控制器之前和之后执行特定操作。同时,由于前端与后端...

    SpringBoot拦截器实现登录拦截的方法示例

    在上面的配置中,我们定义了一个LoginInterceptor拦截器,并且指定了拦截所有请求,但排除了"/login"和"/error"路径。 然后,我们可以实现具体的拦截器类LoginInterceptor: ```java public class ...

Global site tag (gtag.js) - Google Analytics