当前位置: 首页 > 知识库问答 >
问题:

Spring Boot Request映射不适用于Filter

陈琪
2023-03-14

我正在开发一个SpringBoot项目,其中有@RestController和FilterRegistrationBean。我添加的过滤器可以工作,但是在@RestController和@RequestMapping中配置的url不能工作。当我请求url时,响应代码是200,但是没有显示任何内容。当我移除过滤器时,RequestMapping工作正常。为什么?(我访问的网址是http://localhost:8080/simple)下面是我的代码。SessionTokenFilter:

public class SessionTokenFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        Map<String, String[]> param_map = servletRequest.getParameterMap();
        for(String param_key: param_map.keySet()){
            System.out.println("Parameter name: "+param_key);
        }
        System.out.println("Get a request from the browser!");
    }
}

AppConfiguration.java

@Configuration
public class AppConfiguration {
    @Bean
    public FilterRegistrationBean<SessionTokenFilter> registerFilter(){
        FilterRegistrationBean filterBean = new FilterRegistrationBean();
        filterBean.setFilter(new SessionTokenFilter());
        filterBean.setUrlPatterns(Arrays.asList("/*"));
        return filterBean;
    }
}

ApiRouters.java

@RestController
public class ApiRouters {
    @RequestMapping(value="/simple", method= RequestMethod.GET)
    public ResponseEntity simple(){
        System.out.println("Simple url matched!");
        return ResponseEntity.ok().body("Ok");
    }
}

主入口类:

@SpringBootApplication
public class ApiApplication {
    public static void main(String[] args){
        SpringApplication.run(ApiApplication.class);
    }
}

共有1个答案

杨高翰
2023-03-14

原因是应该调用过滤器链。当我在过滤器类中添加代码时,一切正常。

filterChain.doFilter(servletRequest, servletResponse);
 类似资料:
  • 问题内容: 很抱歉打扰-也许这是一个非常简单的问题- 但由于某些原因,下面的版本无法解析,而带有set的版本可以正常工作。实际上,如果我仅使用set版本并将set替换为list,则会得到: 嵌套异常为org.hibernate.InvalidMappingException:无法从无效映射中解析映射文档 谢谢米莎 问题答案: 你说 而带有set的版本可以正常工作 这是清单DOCTYPE 您可以看到

  • 当我尝试更新我的索引,并添加一个从方法copy_to创建的新字段(见http://pastebin.com/T7GcHSXj)时,我得到了这个我不明白的错误: “error”:“MapperParsingException[解析后根类型映射不为空!其余字段:[映射:{tInfoclient={properties={Client={properties={d\u naiss\u cli={type

  • 问题内容: 我的多对一映射存在性能问题。当我在日志文件中调试SQL查询时,可以进行主体查询,但是在我有其他表示多对一对象映射的查询之后。 Entity.hbm.xml: Object1.hbm.xml: Object2.hbm.xml: 查询HBM: 在pom.xml中 问题答案: 您是否尝试过像这样的FetchMode.SELECT?

  • 请注意,我已经看过类似的问题,我已经解释了为什么它们对我不起作用 我有一个简单Spring boot JPA-Hibernate应用程序,它具有用户和地址之间的一对一映射。(请注意,我对一对多映射没有这个问题) 用户实体 员额1 我还读到spring.jpa.open-in-view defualt值可能是罪魁祸首: 员额2 通过将添加到我的中,我禁用了默认的“在视图中打开”属性 我假设这是因为J

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。