过滤器的使用

本文介绍了一个简单的Servlet过滤器实现,用于检查用户的登录状态。如果用户已登录,则允许访问受保护页面;若未登录,则重定向到登录页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 首先写好类:它继承
ackage shop;

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;


public class MyFilter implements Filter {
    
protected FilterConfig filterConfig;

    
public void init(FilterConfig arg0) throws ServletException {
        filterConfig 
= arg0;


    }


    
public void doFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) 
throws IOException, ServletException {
        HttpServletRequest request 
= (HttpServletRequest) arg0;
          HttpServletResponse response 
= (HttpServletResponse) arg1;
          String tag
=(String)request.getSession().getAttribute("isLog");
        
        
if((tag!=null)&&(tag.equals("ok")))
        
{
            
                arg2.doFilter(arg0, arg1);
        }

        
        
else
        
{
              System.out.println(
"被拦截一个未认证的请求");
              response.sendRedirect(
"/web/form/login.jsp");
         }


    }


    
public void destroy() {
        filterConfig 
= null;
    }

    
public void setFilterConfig(FilterConfig filterConfig) {
        
this.filterConfig = filterConfig;
    }


}

接下来就是在web.xml中配置就可以了:

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  

<filter>
  
<filter-name>MyFilter</filter-name> 
  
<filter-class>shop.MyFilter</filter-class> 
  
</filter>
 
<filter-mapping>
  
<filter-name>MyFilter</filter-name> 
  
<url-pattern>/form/shopping.jsp</url-pattern> 
  
</filter-mapping>
   
<filter-mapping>
  
<filter-name>MyFilter</filter-name> 
  
<url-pattern>/form/checkout.jsp</url-pattern> 
  
</filter-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值