`
wkkyo
  • 浏览: 30830 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

解决struts2过滤器冲突的简单方法

    博客分类:
  • Java
阅读更多

struts2使用FilterDispatcher进行url过滤,默认是所有的url都过滤,但是项目中有些url是不想用struts2进行过滤的,网上搜了不少方法

 

1.修改web.xml文件。

<filter-mapping>   

    <filter-name>struts2</filter-name>   

    <url-pattern>*.action</url-pattern>   

</filter-mapping>

只让过滤器对加有.action后缀的路径有效,如果需要拦截.jsp,加上*.jsp就行了。

但是这样如果有无后缀名的url(如/demo/)就不能过滤了

 

2.修改struts2核心jar中的default.properties文件

把struts.action.extension=action,,

改为struts.action.extension=action,do,jsp,

但我改了之后发现根本没效果,不知为何

 

3.自定义一个继承StrutsPrepareAndExecuteFilter的过滤器,将配置换成自己自定义的过滤器。(推荐此法)

public class ExtendStrutsFilter extends StrutsPrepareAndExecuteFilter {
	
	@Override
	public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest) req;
		//不过滤的url,可以自行添加
		if ("/demo/fileupload".equals(request.getRequestURI())) {
			//System.out.println("使用自定义的过滤器");
			chain.doFilter(req, res);
		}else{
			//System.out.println("使用默认的过滤器");
			super.doFilter(req, res, chain);
		}
	}
}

 

 修改web.xml

 

<!-- sturts2过滤器 -->
    <filter>
		<filter-name>struts2</filter-name>
                <!-- 改为自己的过滤器 -->
		<filter-class>
			com.filter.ExtendStrutsFilter
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 这种方法试验成功

 

分享到:
评论

相关推荐

    Birt 与 Struts2 整合

    BIRT与Struts2的整合虽然带来了一些技术上的挑战,尤其是过滤器冲突的问题,但通过自定义BirtFilter并进行适当的配置,完全可以有效地解决这些问题。这对于那些希望在Struts2应用中集成强大报表功能的开发者来说,...

    ueditor struts2图片上传问题解决办法

    在使用富文本编辑器ueditor与Struts2框架结合进行图片上传时,常常会遇到一些问题,这些问题可能涉及文件过滤、文件类型限制、文件大小控制、上传路径设置等多个方面。以下是一些解决这些问题的关键知识点: 1. **...

    struts2中文件上传过滤codeFilter

    `codeFilter`在此上下文中通常是指一个自定义过滤器,用于在文件上传过程中进行额外的安全检查或处理。这个过滤器可以防止恶意用户上传不安全的文件类型,例如脚本文件,或者限制文件大小以保护服务器资源。以下是对...

    struts2下载地址

    1. **依赖冲突**:在使用Struts2的过程中可能会遇到与其他框架的依赖冲突问题,解决方法通常是调整依赖版本或者排除不必要的依赖。 2. **配置错误**:配置文件的错误是常见的问题之一,可以通过仔细检查配置文件以及...

    struts2框架学习笔记整理

    - **前端控制器模式**:Struts2的前端控制器是过滤器(Filter),而Spring MVC的前端控制器是DispatcherServlet。这种设计简化了请求处理流程。 - **请求处理流程**:当用户请求到达时,Struts2的前端控制器会根据配置...

    struts2教程(完全版)

    Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。...记得实践是学习的最佳途径,尝试创建一个简单的Struts2应用,将理论知识转化为实际操作,这将有助于巩固你的学习成果。

    struts2 Action 包 命名空间 servlet API

    Struts2通过FilterDispatcher这个Servlet过滤器来拦截所有到达服务器的请求,判断是否需要由Struts2框架处理,如果是,则根据配置的Action映射调用相应的execute()方法。 Struts2的包结构清晰,每个包都有其特定的...

    MyEclipse 搭建Struts2+Spring2+Hibernate3整合SSH2

    - 此步骤会自动添加Struts2的相关库,并在`src`目录下生成`struts.xml`配置文件,同时在`web.xml`中配置Struts2的过滤器。 3. **配置Struts2** - 在Struts2的配置界面,可以选择Struts2的版本和所需的Jar包。 - ...

    struts2学习文档(含截图)

    4. **Struts2过滤器处理**:过滤器根据配置文件struts.xml中的信息来处理请求。 5. **解析namespace和action**:过滤器先根据namespace定位到相应的包(package),再根据action名称定位到具体的Action类。 6. **执行...

    struts2详细介绍

    1. **web.xml**:Web容器级别的配置文件,主要用于配置过滤器,如**StrutsPrepareAndExecuteFilter**或**FilterDispatcher**。后者在早期版本中使用较多,但新版本更推荐使用前者,因为它提供了更多功能和更高效的...

    Spring与Struts2整合

    在Java Web开发中,Spring... 首先,需要在项目中引入Struts2的依赖,并在web.xml中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.FilterDispatcher`或更新版本的`org.apache.struts2.dispatcher.ng.filter....

    Struts2经典笔记

    在`web.xml`文件中,你需要定义一个名为`struts2`的过滤器,指定其类为`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。这是从Struts2.1版本开始引入的,之前版本使用的是`...

    ·Struts2配置文件介绍 超级详细

    - **web.xml**:它是Web应用的部署描述符,负责配置Servlet容器如何加载Struts2的核心过滤器`StrutsPrepareAndExecuteFilter`。通过这个过滤器,Struts2能够拦截所有的HTTP请求,并将其转发到相应的Action处理。 - ...

    Struts2的bug----------关于Struts2中找不到Action的

    5. **过滤器配置**:Struts2的过滤器需要在web.xml中正确配置。确认`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`已设置,并且在其他过滤器之前运行。 6. **类加载问题**:确保项目结构和构建工具(如Maven...

    JavaWeb_SSH框架入门,IntelliJ idea搭建Struts2的helloWorld

    3. **配置web.xml**:在WEB-INF目录下,编辑web.xml文件,配置Struts2的过滤器,将Struts2的前端控制器指向所有的HTTP请求。 4. **创建Action类**:在src/main/java目录下创建Action类,继承Struts2的ActionSupport...

    struts2 PPT教程

    Struts2的主要目标是提供一个更加灵活和强大的解决方案,以解决Struts1.x版本中存在的问题,如表现层技术单一、与Servlet API耦合严重、不易测试等。 在Struts1.x中,表现层技术主要局限于JSP,与Servlet API耦合...

Global site tag (gtag.js) - Google Analytics