`
michaeltangbin
  • 浏览: 271729 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

servlet利用filter实现登录过滤

    博客分类:
  • java
阅读更多

登录过滤类loginFilter
------------------------------------------

package spell;
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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class loginFilter extends HttpServlet implements Filter {
    
     private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
     public void init(FilterConfig filterConfig) throws ServletException {
         this.filterConfig = filterConfig;
     }
//Process the request/response pair
     public void doFilter(ServletRequest request, ServletResponse response,
             FilterChain filterChain) {
         try {
                 HttpServletRequest req=(HttpServletRequest)request;
                 HttpServletResponse rsp=(HttpServletResponse)response;
                 HttpSession session=req.getSession(true);
                 String userName=(String)session.getAttribute("userName");

                 String   uri   =   ((HttpServletRequest)   request).getRequestURI();   
                 if(userName!=null  ||   uri.endsWith("login.jsp")  ||   uri.endsWith("login.do"))  {//验证通过
                      filterChain.doFilter(request, response);
                 }
                 else
                 {//验证不通过,取得设置的跳转页面参数
                     String noLogin=filterConfig.getInitParameter("noLogin");
                     rsp.sendRedirect(noLogin);
                 }
         } catch (Exception sx) {
             filterConfig.getServletContext().log(sx.getMessage());
         }
        
     }
    
//Clean up resources
     public void destroy() {
     }
    
     protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
         super.doGet(arg0, arg1);
     }
    
     protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
         super.doPost(arg0, arg1);
     }
}

web.xml配置
----------------------------

     <filter>
         <filter-name>loginFilter</filter-name>
         <filter-class>spell.loginFilter</filter-class>   <!--loginFilter对应的类名-->
         <init-param>
             <param-name>noLogin</param-name>
             <param-value>../strutsHtml.jsp</param-value> <!--没有登录跳转的页面-->
         </init-param>
     </filter>

     <filter-mapping>
         <filter-name>loginFilter</filter-name>   <!--选择loginFilter来验证登录-->
         <url-pattern>/member/*</url-pattern>   <!--配置member下的文件要求权限判断-->
     </filter-mapping>

分享到:
评论

相关推荐

    servlet+jsp实现过滤器 防止用户未登录访问

    使用servlet和jsp技术时,我们可以通过过滤器(Filter)来实现这样的安全防护机制。过滤器是一种服务器端的组件,它能够对请求和响应进行拦截,执行一些预处理或者后处理操作。它常用于进行登录验证、权限检查、字符...

    servlet 过滤器做的简单登陆demo

    在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证系统。这个例子非常适合初学者理解和实践过滤器的用法。 1. **Servlet Filter原理**: Servlet过滤器遵循`Filter`...

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

    通过这个简单的登录示例,你可以学习到如何利用Servlet过滤器检查用户登录状态,确保只有已登录的用户才能访问特定的受保护资源。过滤器提供了一种灵活的方式来增强应用程序的功能,无需修改原有的Servlet代码,对于...

    servlet过滤器实例经典过滤器

    根据Java Servlet规范,过滤器(Filter)是一个实现了javax.servlet.Filter接口的类,它能够在请求处理链中插入额外的逻辑。通过在web.xml文件中定义过滤器,我们可以指定哪些请求路径需要被过滤,并且可以设置多个...

    servlet过滤器验证用户登录

    在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...

    简单使用Filter模拟Servlet中的过滤器

    在实际项目中,Filter的应用非常广泛,例如实现登录验证、字符集编码转换、GZIP压缩、安全控制等。通过理解和熟练使用Filter,开发者可以更好地控制和优化Web应用程序的行为。 由于提供的压缩包文件名为`webfilter`...

    简单的servlet+Filter的例子

    例如,Filter可以用于登录验证、数据过滤、日志记录等。Filter的生命周期包括初始化、过滤、销毁。当Filter被加载时,会调用`init()`方法;在每个请求通过Filter链时,`doFilter()`方法会被调用;服务器关闭时,`...

    servlet过滤器Filter入门

    防止用户利用缺省 servlet URL 绕过过滤器设置。 9. 避免过滤器的使用限制 过滤器只在与 servlet 规范 2.3 版兼容的服务器上有作用。如果你的 Web 应用需要支持旧版服务器,就不能使用过滤器。 通过本文,我们...

    servlet过滤器详解

    - **接口**:所有Servlet过滤器需实现`javax.servlet.Filter`接口,该接口包含三个核心方法: - `init(FilterConfig config)`:初始化过滤器,读取配置信息。 - `doFilter(ServletRequest request, Servlet...

    java 登录过滤 servlet web-inf

    ### 实现登录过滤器的关键代码解析 #### 1. 导入必要的包 ```java import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import ...

    java servlet 过滤器

    在本场景中,我们利用过滤器实现了用户登录验证,确保只有已登录的用户才能访问受保护的页面,而不会对其他模块的功能造成影响。这种设计遵循了软件工程中的单一职责原则,提高了代码的可读性和可维护性。

    Servlet之Filter深入讲解及实例研究

    Servlet之Filter是Java Web开发中的一个重要概念,它在Servlet规范中扮演着不可或缺的角色。Filter(过滤器)允许开发者在请求到达目标Servlet...通过深入学习和实践,开发者可以更好地利用Filter解决各种实际问题。

    servlet_filter.rar_Servlet filter_重写filter

    在这个压缩包“servlet_filter.rar”中,我们聚焦于Servlet Filter的重写以及如何利用它来解决乱码问题和过滤敏感字符。 首先,让我们深入理解Servlet Filter的工作原理。Servlet Filter是一个实现了`javax.servlet...

    Spring 管理filter 和servlet

    通过Spring管理Filter和Servlet,不仅可以充分利用Spring的依赖注入能力,简化Filter和Servlet的配置,还能增强代码的可维护性和可扩展性。开发者无需在Filter或Servlet内部硬编码bean名称,而是通过Spring容器自动...

    基于servlet的过滤器

    在这个小型的基于Servlet的过滤器项目中,我们主要关注如何利用过滤器来实现对网站访问用户的计数功能。这个功能在很多网站统计分析中都非常常见,可以帮助我们了解网站的流量情况。 首先,我们要理解Servlet过滤器...

    jsp,servlet,filter温故知新

    **JSP、Servlet与Filter详解** 在Web开发领域,Java技术是不可或缺的一部分,其中JSP(JavaServer Pages)...在实际项目中,合理利用Filter可以提高应用的安全性和性能,而JSP和Servlet则负责处理用户交互和业务逻辑。

    过滤器实现图片过滤功能

    实现图片过滤功能,我们需要自定义一个Filter类,继承`javax.servlet.Filter`并实现其方法。在`doFilter()`方法中,我们可以获取到请求的URL和HTTP方法,判断是否与图片资源相关。如果请求的目标是一个图片文件,...

    Filter(过滤器)简介和工作原理

    * 认证和授权:可以使用 Filter 来实现认证和授权功能,例如检查用户的登录状态和权限。 * 日志记录:可以使用 Filter 来记录客户端的请求和响应信息,以便进行日志记录和分析。 * 缓存处理:可以使用 Filter 来实现...

    servlet过滤器解决乱码问题

    通过上述步骤,我们可以有效地利用Servlet过滤器来解决Web应用中的乱码问题。这种方式不仅提高了代码的可维护性和扩展性,还保证了用户数据的准确性。在实际项目中,可以根据具体的业务需求调整过滤器的逻辑,例如...

    jsp servlet过滤器,登陆验证 获取session

    `session`对象允许我们在多个请求之间持久化用户数据,这对于实现登录功能至关重要。同时,过滤器提供了一种优雅的方式,让我们可以在请求到达目标资源之前进行预处理,确保只有已登录的用户才能访问受保护的页面。

Global site tag (gtag.js) - Google Analytics