Filter实际应用--检查用户是否登录的过滤器
来源:互联网 发布:淘宝助手历史版本下载 编辑:程序博客网 时间:2024/05/17 10:04
a.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>A</title></head><body> <h1>AAAAAA</h1><a href="list.jsp">return...</a></body></html>b.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>B</title></head><body> <h1>BBBBB</h1><a href="list.jsp">return...</a></body></html>c.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>C</title></head><body> <h1>CCCCCC</h1><a href="list.jsp">return...</a></body></html>d.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>D</title></head><body> <h1>DDDDDD</h1><a href="list.jsp">return...</a></body></html>list.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Title</title></head><body> <a href="a.jsp">AAA</a> <a href="b.jsp">BBB</a> <a href="c.jsp">CCC</a> <a href="d.jsp">DDD</a></body></html>login.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>LOGIN</title></head><body> <form action="dologin.jsp" method="post"> name:<input type="text" name="name"> <input type="submit" value="submit"> </form></body></html>dologin.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Title</title></head><body> <% Const.NAME=request.getParameter("name");%></body></html>const:
package com.sa.util;public class Const { public static String NAME=""; public static final String OKURL="/pages/a.jsp,/pages/list.jsp,/pages/login.jsp,/pages/dologin.jsp";}
loginFilter:
package com.sa.filter;import com.sa.util.Const;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@WebFilter(filterName = "LoginFilter")public class LoginFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { //1.获取url ///1012/pages/a.jsp String uri=((HttpServletRequest)req).getRequestURI(); //http://localhost:8080/1012/pages/a.jsp String url=((HttpServletRequest)req).getRequestURL().toString(); ///pages/a.jsp String path=((HttpServletRequest) req).getServletPath(); //System.out.println(uri); //System.out.println(url); //System.out.println(path); //2.首先检查url是否需要登录检查 if(Const.OKURL.contains(path)){ //包括,放行 System.out.println(1); chain.doFilter(req, resp); return; } //3.需要登录检查的url是否已经登录 if(!Const.NAME.equals("")&&Const.NAME !=null){ //如果name不为空,则放行 System.out.println(2); chain.doFilter(req, resp); return; } //4.如果没有登录,则需要重定向登录页 System.out.println(3); ((HttpServletResponse)resp).sendRedirect("login.jsp"); } public void init(FilterConfig config) throws ServletException { }}
web.xml:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <filter> <filter-name>LoginFilter</filter-name> <filter-class>com.sa.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
功能描述:除了const中的OKURL之外,其他的所有访问都需要进行登录检查,如果没有登录,则重定向到login.jsp,如果已经登录,则可以访问。
开始测试:
①:进入a.jsp:
②:返回list.jsp:
③:尝试进入b.jsp,发现无法进入,直接重定向到login.jsp:
④:输入name,登录:
⑤:再次尝试登录b.jsp:
阅读全文
0 0
- Filter实际应用--检查用户是否登录的过滤器
- 过滤器(filter)判断用户是否登录
- Filter过滤器的应用--拦截未登录用户
- 过滤器Filter的应用:登录验证
- 用户登录(login)过滤器(Filter)
- 过滤器(Filter)应用之------设置页面缓存、用户的自动登录和敏感词过滤
- Filter实际应用--字符编码过滤器
- Filter的实际应用
- Filter-过虑器应用之3-验证用户是否登录
- 用户是否登录验证--过滤器
- 过滤器检验用户是否登录
- 过滤器检验用户是否登录
- 过滤器检验用户是否登录
- 过滤器检验用户是否登录
- 过滤器的应用之自动登录--filter(三)
- filter 过滤器用户登录并判断是否属于电脑端或者手机端访问
- JSP中filter过滤器验证用户登录
- JSP中filter过滤器验证用户登录
- .Net 题(1)
- MD5加密与DES加密解密
- ImageLoader 图片请求框架的使用
- 【UVA1352】Colored Cubes
- Spring学习教程-基础
- Filter实际应用--检查用户是否登录的过滤器
- git 修改提交邮箱以及用户名-亲测
- 线性表综合实验(双链表)
- 全栈必备 敏捷估点
- JS TypeScript 基础篇
- PAT乙级题1010.一元多项式求导
- ls命令
- “FCoE全解系列”之增强型以太网技术
- Maven项目pom.xml中Multiple annotations found at this line问题