关于过滤器的路径

关于过滤器的路径

老师,为什么之前学过滤器的时候,我们是这样设置的

package com.mason.web.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/CharacterEncodingFilter")
public class CharacterEncodingFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {

    }

}
<?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>characterEncoding</filter-name>
        <filter-class>com.mason.web.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>characterEncoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

先设置@WebFilter("/CharacterEncodingFilter")

然后在xml中注册过滤器

<filter>
    <filter-name>characterEncoding</filter-name>
    <filter-class>com.mason.web.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>characterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

但为什么视频中老师是直接把@WebFilter("/*")就可以了呢?

http://img1.sycdn.imooc.com//climg/5ced3a9c000170fa09170670.jpg

不需要在XML中注册以及配置过滤器吗?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

@WebServlet注解用于标注在一个继承了HttpServlet类之上,属于类级别的注解。该注解的作用等价于在web.xml中配置该servlet的<servlet-mapping>元素中的<url-pattern>。

每个注解的作用基本都不相同,在这里,同学可以不用纠结注解的作用,在第四阶段的课程中,对它有详细的讲解呢~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-05-29 10:30:52

同学你好,框架中一般有两种方式用于简化数据的存储和共享。

一是配置文件,二是注解。

@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。

该注解实现了xml文件中的配置,效果是一样的,同学在之后用到的时候,就可以在这两种方式中自行选择啦~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 MasonM #1
    老师,这个跟@WebServlet一样吗?
    2019-05-29 10:43:55
  • 提问者 MasonM #2
    另外我想问一下,注解的格式是怎样的,注解括号里面参数怎样设置呢?
    2019-05-29 11:19:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师