do fiter-fiter可以过滤jsp等后缀的url,但就是过滤不了.do请求,fiter该怎么写 求帮忙

问题描述

fiter可以过滤jsp等后缀的url,但就是过滤不了.do请求,fiter该怎么写 求帮忙
/*public void doFilter(ServletRequest arg0, ServletResponse arg1,
        FilterChain arg2) throws IOException, ServletException {
    // 获得在下面代码中要用的request,response,session对象
    log.info(".....ThirdPartyStoresFilter...doFilter.....");
    HttpServletRequest servletRequest = (HttpServletRequest) arg0;
    HttpServletResponse servletResponse = (HttpServletResponse) arg1;
    HttpSession session = servletRequest.getSession();
    String  user =(String) session.getAttribute("username");
    // 获得用户请求的URI
    String path = servletRequest.getRequestURI();
    System.out.println(servletRequest.getRequestURL()+"(00000000");
    // 登陆页面无需过滤
    if (path.indexOf("/login.jsp") > -1 || path.indexOf("/images") > -1
            || path.indexOf("/js") > -1 || path.indexOf("/style") > -1) {
        arg2.doFilter(arg0, arg1);
        return;
    }

    //得到上下文路径
    String returnUrl = servletRequest.getContextPath();
    try {

        // 判断如果没有取到员工信息,就跳转到登陆页面
        if (StringUtils.isBlank(user)) {
            // 跳转到登陆页面
            servletResponse.sendRedirect(returnUrl
                    + "/shop/login.jsp");
        } else {
            // 已经登陆,继续此次请求
            arg2.doFilter(arg0, arg1);
        }
    } catch (Exception e) {
        servletResponse.sendRedirect(returnUrl
                + "/shop/login.jsp");
    }
}
<filter>
    <filter-name>filter</filter-name>
    <filter-class>...</filter-class>
</filter>
<filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/shop/*</url-pattern>
    </filter-mapping>
*/

解决方案

你是不是还用了 struts啊? .do 请求应该是被它给拦截了

解决方案二:

 A URL pattern is a URI that is relative to the application context. Patterns can include:

Path mapping, starting with / and ending with /*
This pattern identifies any resource that starts with a given path, for example: /catalog/* or /europe/poland/*

Extension mapping, starting with *.
This pattern identifies any resource with the given extension, for example, *.jsp or *.gif

Default servlet mapping, containing only / This pattern identifies the default servlet of the application.
Exact matches
This pattern uses a string that represents a specific resource, for example, /snoop is a servlet mapping and /list/banner.jsp is a file mapping.

So if you need mapping like /secure*, you need either redesign your app to /secure/* so each resource will be a subpath, or apply multiple patters to one web resource collection like /secureA , /secureB, /secureEtc

解决方案三:

struts1没用过,对于struts2还是比较熟悉,struts2只要配置了filer拦截器所有的请求都会先进入拦截器的包括静态资源,只有在filer(拦截器)里面doFilter(放行)的才不拦截,建议把配置贴出来看看,拦截器是根据配置的url目录拦截的,/* 拦截所有请求

解决方案四:

看看你的web.xml配置是不是对请求后缀做了限制

时间: 2024-12-28 05:36:38

do fiter-fiter可以过滤jsp等后缀的url,但就是过滤不了.do请求,fiter该怎么写 求帮忙的相关文章

filter-dofiter可以过滤jsp,html等后缀的url,但就是过滤不了.do请求是哪里错了吗

问题描述 dofiter可以过滤jsp,html等后缀的url,但就是过滤不了.do请求是哪里错了吗 <filter> <filter-name>Filter</filter-name> <filter-class>com.aa.Filter</filter-class> </filter> <filter-mapping> <filter-name>Filter</filter-name> <

怎么在 Fitler 中取得 jsp:include 中的URL

问题描述 Sevlet2.4规范 可以支持 <jsp:include page="URL"> 中匹配的URL,通过Fitler 配置如下 <filter><filter-name>Cache</filter-name><filter-class>prx.cache.filter.CacheFilter</filter-class><init-param><!-- 过期时间设置,默认为60秒 --&

jsp连接数据库一直报错,求帮忙看下,谢谢

问题描述 jsp连接数据库一直报错,求帮忙看下,谢谢 <%@page language=""java"" import=""java.util.*"" pageEncoding=""utf-8""%><%@page import=""java.sql.*""%><html><body><% St

jsp的分页显示问题,怎么将下面的代码分成三页显示?求大神指点

问题描述 jsp的分页显示问题,怎么将下面的代码分成三页显示?求大神指点 简单的代码如下 <%@ page contentType="text/html; charset=gb2312" language="java"%> <html> <body> 第一个页面<br> 第二个页面<br> 第三个页面<br> <a href="change.jsp">上一页<

大神求帮忙-ContentType判断文件类型,当文件后缀名改变后,该文件的ContentType值会不会变化

问题描述 ContentType判断文件类型,当文件后缀名改变后,该文件的ContentType值会不会变化 ContentType判断文件类型,当文件后缀名改变后,他的ContentType值还是原来文件类型的ContentType值还是修改后文件类型的ContentType值. 解决方案 分两种情况讲.第一种情况,你用动态的网页,例如aspx,jsp==,提供一个资源.那时候是你指定contentType的,所以不管你实际给出的是什么,contentType是不会变的.第二种情况,你是一个静

使用JQuery 获取当前[jsp,html,aps,php,...url传参值]

例如:update.jsp?sid=12        怎么获取当前url 传过来的参数 sid=12 呢.下面正好解决了您的需求.但不是最好的!    代码运行效果:

Jsp 服务器resin的url重定向的摸索

js|服务器 最简单的是基于各种WEB服务器中的URL重写转向(Rewrite)模块的URL转换:这样几乎可以不修改程序的实现将 news.jsp?id=234 这样的链接映射成 news/234.html,从外面看上去和静态链接一样.resin服务器上可以通过webinfo的web.xml来设置:URL REWRITE功能之强大足够写上一本书. 当我需要将将news.jsp?id=234的映射成news/234.html时,只需设置web-inf所在目录下面的web.xml: 并且增加以下语句

在ASP.NET MVC中使用带后缀的URL

在 ASP.NET WebForm中不少人做过通过Url重写使Url中不带后缀,这次我们做的正好相反.假设我们需要将URL后缀设置成shtml,以新建ASP.NET MVC项目时默认的项目为例.如果要访问登陆页,则URL为http://localhost/Account/Login,Account匹配Account Controller,Login匹配Login Action.如果我们要将URL改为http://localhost/Account/Login.shtml,在不改变Route的情况

在jsp页面如何获得url参数

 这篇文章主要介绍了在jsp页面获得url参数的方法,需要的朋友可以参考下 当一个url过来时,如:http://localhost:8080/pro/demo/hello.jsp?name=john,在hello.jsp页面,我们可以这样得到name的值:   代码如下: <%  String path = request.getContextPath();  String basePath = request.getScheme()+"://"+request.getServ