spring-mvc.xml
<!-- 以下配置将拦截所有的URL请求 --> <mvc:interceptors> <bean class="**过滤类***AccessHandlerInterceptor" /> </mvc:interceptors> <!-- 以下配置将拦截特有的URL请求 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/main/*"/> <bean class="过滤类" /> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/admin/*.do"/> <bean class="过滤类" /> </mvc:interceptor> </mvc:interceptors> <!-- ps: /**的意思是所有文件夹及里面的子文件夹 /*是所有文件夹,不含子文件夹 -->
java
import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class AccessHandlerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception { String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; String remoteAddress = request.getRemoteAddr(); String servletPath = request.getServletPath(); String realPath = request.getRealPath("/"); String remoteUser = request.getRemoteUser(); String requestURI = request.getRequestURI(); System.out.println(request.getParameter("path") + "######");// 获取参数 String contextPath = request.getContextPath().replaceAll("\\/+", "/"); String accessUrl = request.getRequestURI().substring( contextPath.length()); //获取需要的信息,不同返回处理 /** response.setStatus(400); response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("<script>window.location.href=\"" + request.getContextPath() + "/error\";</script>"); return false; **/ return true; } @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { // TODO Auto-generated method stub } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { // TODO Auto-generated method stub } }
相关推荐
本篇文章将深入探讨如何在Spring Boot中创建并映射过滤器,以及如何实现请求的重定向。 首先,让我们了解过滤器的基本概念。在Java Web开发中,过滤器遵循Servlet规范,通过实现`javax.servlet.Filter`接口来创建。...
本资源提供的"文件服务器访问虚拟路径过滤器源代码"是一个针对Java环境的解决方案,它允许我们对文件服务器上的虚拟路径进行过滤和控制,从而提高系统的安全性。 首先,我们需要理解什么是虚拟路径。在Web应用中,...
本案例中的"过滤器--控制不同权限用户访问不同文件夹代码.rar"是一个针对权限管理的具体应用,它允许开发者根据用户的权限级别决定他们可以访问哪些文件夹或资源。 过滤器的概念源自Java Servlet技术,它是Servlet ...
本篇文章将详细讲解如何通过使用`web.xml`配置文件来实现Filter过滤器,以实现对网站访问量的统计。这种方法是Java Web应用中的经典实践,适用于传统的基于Servlet的项目。 首先,我们需要了解Filter的基本概念。...
通过在web.xml文件中定义过滤器,我们可以指定哪些请求路径需要被过滤,并且可以设置多个过滤器形成过滤链。 配置Servlet过滤器通常包括以下步骤: 1. 创建一个实现Filter接口的类。 2. 在web.xml文件中定义过滤器...
- `web.xml`配置文件:定义了过滤器的映射规则,指明哪些请求路径需要被过滤器处理。 - 自定义过滤器类:实现了`Filter`接口,包含上述的三个方法。 - 登录界面的Servlet或JSP文件:用户输入用户名和密码后,发送...
- `filter-mapping`中的`url-pattern`定义了哪些请求路径需要经过该过滤器。 3. **过滤器链实例**: - 假设我们有两个过滤器,`LoginFilter`负责检查用户是否已登录,`EncodingFilter`用于设置请求和响应的编码...
总结,使用Filter过滤器技术实现访问量统计,结合注解的方式,可以极大地提高开发效率和代码可读性。通过灵活地配置和扩展Filter,我们可以解决许多Web后端开发中的常见问题,提高应用程序的功能和性能。
例如,所有需要登录才能访问的资源路径都会被配置在这个过滤器下。 6. **实践步骤**: - 编写Filter实现类,实现Filter接口的方法,如`doFilter()`。 - 在web.xml中配置Filter,包括设置过滤器的类名和需要拦截的...
这个注解表明我们的过滤器将对/dyflight/*路径下的所有请求进行处理。 在我们的过滤器类中,我们需要实现Filter接口。这个接口有三个方法:init、doFilter和destroy。其中,doFilter方法是我们需要实现的主要方法。...
--filter 标签用于配置一个 Filter 过滤器--> <!--给 filter 起一个别名--> <filter-name>AdminFilter</filter-name> <!--配置 filter 的全类名--> <filter-class>...
例如,将所有与管理员相关的请求路径映射到登录过滤器,防止未授权访问。 5. **异常处理**:在过滤器中捕获登录相关的异常,如用户名或密码错误,可以统一处理这些异常,提供友好的错误提示,而不是暴露系统的具体...
`filter-mapping`部分定义了哪些URL路径会触发该过滤器。 ### 四、过滤器的实现 一个简单的过滤器实现如下: ```java import javax.servlet.*; import java.io.IOException; public class MyFilter implements ...
标题中的“过滤器-登录”指的是在Web开发中使用过滤器(Filter)技术来实现用户登录验证的功能。在Web应用程序中,过滤器是Servlet规范的一部分,允许开发者在请求被发送到目标资源(如Servlet或JSP)之前进行预处理...
这种过滤器通常用于实现网站的访问权限控制。 3. **字符编码转换过滤器** 该过滤器用于统一处理请求和响应的字符编码问题,避免乱码。它会在请求进入Servlet之前,将请求参数从特定的编码转换为服务器期望的编码,...
然后在`web.xml`配置文件中指定过滤器的有效路径,使得当请求匹配到这些路径时,过滤器会被触发。`doFilter()`方法中有三个参数:`ServletRequest`、`ServletResponse`和`FilterChain`。`FilterChain`用于决定是否...
这里,`filter-name`是过滤器的唯一标识,`filter-class`是实现Filter接口的类全名,`url-pattern`则定义了过滤器作用的URL路径。 ### 3. 编写Filter 创建一个类实现Filter接口,并重写上述三个方法。例如,我们...
`filter-mapping`定义了过滤器与哪些URL路径关联,`url-pattern`用来指定匹配规则。 在Java配置方式(如Spring Boot)中,可以通过注解`@WebFilter`来配置过滤器: ```java @WebFilter(filterName = "MyFilter", ...
这种过滤器可以防止未授权的访问,提高应用的安全性。编写这样的过滤器时,需要熟悉Servlet API中的HttpServletRequest和HttpServletResponse对象,以及如何使用它们来检查和设置session属性。 2. UrlFilter.java: ...
在本示例中,"过滤器操作数据库验证合法用户"的标题表明了我们将会讨论如何利用过滤器来验证用户身份,确保只有合法用户能够访问受保护的资源。 首先,我们创建一个实现了`javax.servlet.Filter`接口的类,如`...