博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet中的Filter 过滤器的简单使用!
阅读量:5300 次
发布时间:2019-06-14

本文共 2571 字,大约阅读时间需要 8 分钟。

package com.aaa.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;/** * 一、创建一个filter类  *         1. 就是普通的java类  实现filter *         2.filter 配置 *         
*
filter的类名
*
com.aaa.filter.FilterDemo.filter的类名
这里是相对路径 你自己定义的包名+filter类名 *
*
*
filter的类名
/*
URL在这里设置 需要拦截的路径 /* 是拦截所有! *
* * * requesturi.contains("login.jsp") * contanis 的包含判断 * 如果前面的字符串包含后边的login 就返回true 放行 * 否则就返回false 拦截 */public class LanJieDemo implements Filter { public LanJieDemo() { } public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { /* *filter 过滤器 放行 和拦截 * getSession 是servletRequest 子类的方法需要先进行类型转换,才能使用。 * 使用之前先判断 */ HttpServletRequest req=(HttpServletRequest)request; HttpServletResponse reps=(HttpServletResponse)response; HttpSession session = req.getSession(); Object user = session.getAttribute("u"); if (user!=null) { chain.doFilter(req, reps); }else { //将不需要拦截的资源配置 添加到string数组中 String [] arr= {"login.jsp","UserLoginServlet","register","Register","logout.jsp","Logout"}; //通过req.getrequesturl 获得本次请求的地址 String requestURI = req.getRequestURI(); //定义 Boolean类型变量tag = false boolean tag=false; //foreach 便利我们定义的string数组 里面都是不需要拦截的资源 for (String str : arr) { //如果本次请求的地址在 string数组中 就将tag=true if (requestURI.contains(str)) { tag=true; break; //结束循环! } } //true 就放行 if (tag) { chain.doFilter(req, reps); }else { //进行拦截 回到登录界面! reps.sendRedirect("login.jsp"); } }

 

转载于:https://www.cnblogs.com/ZXF6/p/11099259.html

你可能感兴趣的文章
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
图片生成缩略图
查看>>
动态规划 例子与复杂度
查看>>
查看oracle数据库的连接数以及用户
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
三.野指针和free
查看>>
activemq5.14+zookeeper3.4.9实现高可用
查看>>
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
HDU4405--Aeroplane chess(概率dp)
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>