1. 如何创建过滤器Filter
建立一个过滤器涉及下列五个步骤: 1、建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter方法包含主要的过滤代码,init方法建立设置操作,而destroy方法进行清楚。 2、在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。最后一个参数为FilterChain,如下一步所述,此参数用来调用servlet或JSP页。 3、调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。 4、对相应的servlet和JSP页面注册过滤器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。 5、禁用激活器servlet。防止用户利用缺省servlet URL绕过过滤器设置。doFilter方法: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException{HttpServletRequest req = (HttpServletRequest)request; System.out.println(req.getRemoteHost() + " tried to access " +req.getRequestURL() +" on " + new Date() + "."); chain.doFilter(request,response); }在web.xml中进行部署 分别是:filter和filter-mapping。filter元素向系统注册一个过滤对象,filter-mapping元素指定该过滤对象所应用的URL。 1.filter元素 filter元素位于部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。filter元素具有如下六个可能的子元素: :icon 这是一个可选的元素,它声明IDE能够使用的一个图象文件。 :filter-name 这是一个必需的元素,它给过滤器分配一个选定的名字。 :display-name 这是一个可选的元素,它给出IDE使用的短名称。 :description 这也是一个可选的元素,它给出IDE的信息,提供文本文档。 :filter-class 这是一个必需的元素,它指定过滤器实现类的完全限定名。 :init-param 这是一个可选的元素,它定义可利用FilterConfig的getInitParameter方法读取的初始化参数。单个过滤器元素可包含多个init-param元素。2.filter-mapping元素 filter-mapping元素位于web.xml文件中filter元素之后serlvet元素之前。它包含如下三个可能的子元素:: :filter-name 这个必需的元素必须与用filter元素声明时给予过滤器的名称相匹配。 :url-pattern 此元素声明一个以斜杠(/)开始的模式,它指定过滤器应用的URL。所有filter-mapping元素中必须提供url-pattern或servlet-name。但不能对单个filter-mapping元素提供多个url-pattern元素项。如果希望过滤器适用于多个模式,可重复整个filter-mapping元素。 :servlet-name 此元素给出一个名称,此名称必须与利用servlet元素给予servlet或JSP页面的名称相匹配。不能给单个filter-mapping元素提供多个servlet-name元素项。
2. 不明白Filter过滤器怎么用,大家帮帮我
我来给你简单的说一下吧:)
首先要明确。Filter是JSP2.0里面的东西 ,顾名思义,也就是过滤器的意思
和你说说如何用吧。要用Filter就得在web.xml中配置
例:
//配置方法和配置普通的Servlet一样的哦
<filter>
<filter-name>PrivFilter</filter-name>
<filter-class>com.myPriv.filter.PrivFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrivFilter</filter-name>
<url-pattern>/resource/*</url-pattern>
</filter-mapping>
//com.myPriv.filter.PrivFilter是这个过滤器所在的位置。当然这个过滤器必须实现接口javax.servlet.Filter。
然后就可以在过滤器这个接口方法中增加过滤条件了
public void doFilter(ServletRequset request, ServletResponse response,FilterChain chain)
thows ServletException, IOException{
}
然后你可以把过滤条件写出来,写在doFilter方法里面
我这里写一个简单的例子:
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session=request.getSession();
ServletContext application=session.getServletContext();
if(session.getAttribute("userSession")==null)
{
response.sendRedirect("error/priv_error.jsp");
return;
}
else
{
chain.doFilter(request, response);
}
}
在上面的这个过滤方法中,如果session.getAttribute("userSession")==null)那就跳转到错误页面。如果不为空,则继续
所以
chain.doFilter(request, response);的意思就是跳转到下个页面,
明白了吧?
如果还有不明白。,可以留下你的问题
------------------------
还有忘了回答你的问题 了。java会在处理每一个Servlet时都走一次Filter的。所以你不必担心你的过滤不起作用了
而且chain.doFilter(request.response);
是必须的。没有他,程序就不会继续了:)他是让你的request和response继续运行哦
--------------------------------
这个你就可接写/*
好了。它是说对哪些范围起作里这个过滤器
3. 在cad中,对象选择过滤器在哪个里面
选择过滤器的话,输入FILTER命令,看能不能执行,还有一个就是快速选择QSELECT,快速选择在界面里能找到,关键看你用的是什么版本,特性面板(CTRL+1)上面最右侧的按钮就是
4. 过滤器<filter>配置的位置
在WEB-INF下面的web.xml里面配置。例如:
<filter>
<filter-name>projectFilter</filter-name>
<filter-class>com.bruce.filter.ProjectFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>projectFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
5. ffmpeg 有哪些filter
AVFilter
所有我们写的滤镜都要用一个AVFilter结构体讲给ffmpeg听。 这个结构体里描述了ffmpeg从哪个方法进入我们的滤镜。 这个结构体在libavfilter/avfilter.h里如下定义:
01 typedef struct
02 {
03 char *name; ///< 滤镜名称
04
05 int priv_size; ///< 给滤镜分配的内存大小
06
07 int (*init)(AVFilterContext *ctx, const char *args, void *opaque);
08 void (*uninit)(AVFilterContext *ctx);
09
10 int (*query_formats)(AVFilterContext *ctx);
11
12 const AVFilterPad *inputs; ///< 一系列输入 NULL terminated list of inputs. NULL if none
13 const AVFilterPad *outputs; ///< 一系列输出 NULL terminated list of outputs. NULL if none
14 } AVFilter;
“query_formats”方法用于设置可以接受的输入图像格式和输出的图像格式(用于滤镜链分辨哪些滤镜可以组合在一起用)。
AVFilterPad
这个滤镜用于描述滤镜的输入输出,在libavfilter/avfilter.h中定义如下:
01 typedef struct AVFilterPad
02 {
03 char *name;
04 int type;
05
06 int min_perms;
07 int rej_perms;
08
09 void (*start_frame)(AVFilterLink *link, AVFilterPicRef *picref);
10 AVFilterPicRef *(*get_video_buffer)(AVFilterLink *link, int perms);
11 void (*end_frame)(AVFilterLink *link);
12 void (*draw_slice)(AVFilterLink *link, int y, int height);
13
14 int (*request_frame)(AVFilterLink *link);
15
16 int (*config_props)(AVFilterLink *link);
17 } AVFilterPad;
头文件里有十分具体的描述,这里大概解释如下:
输入输出pad都可以用的元素:
name pad的名字,所有的输入pad名字不能重复,所有的输出名字不能重复;
type 此元素目前只能为“AV_PAD_VIDEO”值
config_props 链接此pad的配置方法的函数指针
仅限输入pad使用的元素:
min_perms 接受输入需要的最小权限
rej_perms 不接受的输入权限
start_frame 一帧传入时引用的方法的函数指针
draw_slice 每个slice已经传入后引用的方法的函数指针
end_frame 一帧完整结束后引用的方法的函数指针
get_video_buffer 前一个滤镜调用,用以为一个图像请求内存
仅限输出pad使用的元素:
request_frame 请求滤镜输出一帧
6. 谁可以给我一个Javaweb过滤器filter的相关jar
那个东西在tomcat里面就有,所有的web容器和javaee应用服务器都有这个。
一个出来就行了。
而且回你开发这个的时候肯定不是空答手开发,光用一个接口的jar根本运行不起来。
所以肯定要一个开发运行环境的,直接import你的web容器里面lib里所有的jar就肯定包括了
7. 在Photoshop界面打开的图片,有时打不开“Filter”各种过滤器,怎么办
1、首先,在Photoshop中打开图抄像,点击“过滤器”按钮,选择“转换为智能过滤器”,如下图所示,然后进入下一步。
8. java过滤器中实现Filter的类怎么写
web.xml配置文件来
SessionFilter
com.qhit.system.tools.SessionFilter
SessionFilter
/*
java类
public class ConnFilter extends HttpServlet implements Filter {
public void doFilter(ServletRequest request,ServletResponse response,
FilterChain filterchain) throws IOException,ServletException
{
try
{
filterchain.doFilter(request,response);此处自为过滤链 理解为请求通过该过滤继续前行 可在此处加上判断 如果TRUE执行该语句 有过FALSE 则直接跳转其他页面 常用于判断是否有权限进入某页面
}
finally
{
DBUtils.close();
}
}
9. 汽车有哪些过滤器 都在什么位置 哪些可以自己更换
有以下几种:
1、空气滤装在机仓里,很方便更换;
2、机油滤装在发动机边上,看版你的动手能力权和工具情况;
3、空调滤一般在手套箱附近,很方便更换;
4、燃油滤一般在车底或油箱内,车底的好换,油箱里的麻烦一点。
能否自己更换是要看你的动手能力,还有工具情况的,这几个正常保养的备件都是比较好换的。
过滤器(filter)是输送介质管道上不可缺少的一种装置,通常安装在减压阀、泄压阀、定水位阀 ,方工过滤器其它设备的进口端设备。过滤器由筒体、不锈钢滤网、排污部分、传动装置及电气控制部分组成。待处理的水经过过滤器滤网的滤筒后,其杂质被阻挡,当需要清洗时,只要将可拆卸的滤筒取出,处理后重新装入即可,因此,使用维护极为方便。
10. Filter要用到哪些jar包
Filter的意思是过滤器,需要用到一些Java的包。
在以前举的一些示例程序中,基本上都没有使用包,因为例子通常都是一些比较小的程序,只要两三个类就可以完成了,不需要再进行分类组织。但是,当开发较大规模的程序时,就会发现这种开发模式的局限。
当创建了大量的类以后,会对大量冗长的名字感到厌烦,于是可能会趋向于使用较短小的名字。使用简短的名字固然会给编程带来便利,但是当类的数量激增时,这些类就有可能重名,而也许还不知道。使用包就可以解决这个问题,可以使用包把类组织起来,而在包内就可以使用简单名称,在越包访问的时候就需要使用带包名的限定名称。
使用包不仅可以避免名字的冲突,还可以把大量的类按照功能和用途组织起来,访问和查找起来更加方便。
可以把包理解为一种组合机制,包主要有两种用途:
减少命名混乱问题。
控制包中类、接口、方法和一定的访问权限控制。
使用包可以提供一定的访问控制。类、方法和域的默认访问权限就是可以在声明它的包中被访问。包中封装了类和其它的包,所以Java提供了对类成员在四种范围中的访问权限的控制,这四种范围包括:
同一个类中。
同一个包中。
不同包中的子类。
不同包中的非子类。
访问权限则包括private、protected、public和friendly。
希望我能帮助你解疑释惑。