web.xml-新手求助:filter过滤器的问题

问题描述

新手求助:filter过滤器的问题

web.xml配置

<filter>
        <filter-name>loginInterceptor</filter-name>
        <filter-class>com.cbt.Interceptor.LoginInterceptor</filter-class>
        <init-param>
            <param-name>loginPage</param-name>
            <param-value>main_login</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>loginInterceptor</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>loginInterceptor</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>loginInterceptor</filter-name>
        <url-pattern>*.html</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>cbtconsole</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>cbtconsole</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

springmvc配置

<bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <!-- 资源映射:因为servlet-mapping会拦截所有请求.需要过滤掉静态资源请求 -->
    <mvc:resources location="/WEB-INF/css/" mapping="/css/**" />
    <mvc:resources location="/WEB-INF/js/" mapping="/js/**" />

过滤器代码

@Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
        String urlPath = httpServletRequest.getRequestURL().toString();
        String value = jedisClient.get("key1");
        System.out.println(urlPath+"---"+value);
        if (value !=null) {
            chain.doFilter(request, response);
        }else{
            httpServletResponse.sendRedirect(urlPath + loginPage);
        }
    }

    @Override
    public void init(FilterConfig config) throws ServletException {
        //context-param –> listener –> filter –> servlet
        loginPage = config.getInitParameter("loginPage");
        ServletContext context = config.getServletContext();
        ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
        jedisClient = (JedisClient) ctx.getBean("jedisClient");
    }

输入localhost:8080进入过滤器后直接死循环了.
求大神指点

解决方案

是不是大神都不屑回答这种问题.小白真心求解答

解决方案二:

  应该是下面这句有问题,在不停的重定向。监控下value值。要是每次都为null的话定会死循环。
    if (value !=null) {
            chain.doFilter(request, response);
        }else{
            httpServletResponse.sendRedirect(urlPath + loginPage);
        }
时间: 2024-10-01 21:29:32

web.xml-新手求助:filter过滤器的问题的相关文章

【求助】web开发新手求助~

问题描述 老师突然布置任务要让做一个员工注销假网页:要求:1.员工登陆后,请假(写清请假起始和终止日期):2.老板登陆后,决定是否准假:3.员工再登陆后查看状态,是否被准假:4.员工登陆可以进行销假,即更改已有的请假状态:5.老板登陆后可以查看所有已被准假过的员工状态.因为之前没有接触过web开发不清楚需要哪些知识储备.具体该怎么做.所以希望大神们可以简单给我讲讲做这个网页需要哪些步骤,学习哪些知识,还望大神们不吝赐教,拜谢~ 解决方案 解决方案二:一些基本的ASP.net知识,比如怎么绑定数据

为什么struts2 在web.xml中写了filter就不能打开jsp文件了

问题描述 为什么struts2 在web.xml中写了filter就不能打开jsp文件了 其中jsp文件放在F:tomcatwebapps2 web.xml放在F:tomcatwebapps2WEB-INF //web.xml中的filter struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2/2/*.action 解决方案 filter的一部分打印不出来. 解决方案二: 请求

Tomcat中用web.xml控制Web应用详解

web|xml|控制|详解 1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义).所有部署描述符文件的顶层(根)元素为web-app.请注意,XML元素不像HTML,他们是大小写敏感的.因此,web-

用web.xml控制Web应用的行为

web|xml|控制 1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义).所有部署描述符文件的顶层(根)元素为web-app.请注意,XML元素不像HTML,他们是大小写敏感的.因此,web-App

Servlet JSP 二重修炼:Filter过滤器

前言 好久没写博客了.哈哈~宝刀未老呀,操起笔来准备11.11华华丽丽的来一篇.都说温故知新,这句话绝对正确.按着人的记忆曲线,温故是巩固记忆力的好办法.就像我还是经常翻翻自己写的博客.回头来看看到的是新的东西.那就足够了. 从右到左:人生境界也 过滤器 其实拦截器我在 posted @ 2014-03-20 12:45 写过一篇:<⑧javaWeb之在例子中学习(过滤器Filter)>.会过头来看,发现里面讲的不太细粒.但是其中两个应用小例子是挺不错了.如果喜欢看例子的可以去看看. 什么是过

Filter过滤器和Listener监听器详解

Filter过滤器和Listener监听器详解 Filter过滤器 Filter的简介 对资源的访问进行过滤,相当于小区的保安,进去要检查,出去还要检查. Filter的使用 编写一个类,继承并实现javax.servlet.Filter. package com.jyh.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.s

【新手】Filter与TOMCAT的启动问题

问题描述 只要在WEB.XML中加入Filter后,TOMCAT就报错:Context[/test]startupfailedduetopreviouserrors,Filter的配置应该没有错误,是哪里出现问题呢?求解答?WEB.XML的配置:<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.5"xmlns="http://java.sun.com/xml/

web.xml 中的listener、 filter、servlet 加载顺序及其详解

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰.         首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter -> servlet         同时还存在着这样一种配置节:context-pa

web.xml中的所有配置,Listener和Filter的加载顺序

web.xml 中的listener. filter.servlet 加载顺序及其详解 在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰.         首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter