`
fordfelix
  • 浏览: 4127 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

过滤器filter一个小范例

阅读更多
WEB.XML
  <filter>
  <filter-name>infoFilter</filter-name>
  <filter-class>com.InfoFilter</filter-class>
  <init-param>
  <param-name>illegal</param-name>
  <param-value>cat,pig</param-value>
  </init-param>
</filter>

<filter-mapping>
<filter-name>infoFilter</filter-name>
<url-pattern>/Comment</url-pattern>
</filter-mapping> 


<servlet>
    <servlet-name>Comment</servlet-name>
    <servlet-class>com.Comment</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Comment</servlet-name>
    <url-pattern>/Comment</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
----------------------------------------------------------------
public class Comment extends HttpServlet {


public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("------service-----");
String addr =request.getRemoteAddr();
System.out.println(addr);

String info = request.getParameter("info");
System.out.println("servlet info:" + info);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>info:"+ info + "</h1>");
}

-----------------------------------------------------------------


public class InfoFilter implements Filter {

private FilterConfig config;

/**
* web服务器删除Filter实例前,调用该方法
* 用于释放资源
*/
public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
System.out.println("--------Filter---------");
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
String info = request.getParameter("info");

System.out.println("filter info:" + info);
String illegalStr = config.getInitParameter("illegal");

String[] illegalStrs = illegalStr.split(",");
for (int i = 0; i < illegalStrs.length; i++) {
if(info.indexOf(illegalStrs[i])!= -1)
{
PrintWriter out = response.getWriter();
out.println("<h1>illegal info!</h1>");
return;
}
}

//将请求传给下一个组件(可能是一个Filter,也可能是一个servlet)
arg2.doFilter(arg0, arg1);

}

/**
* 用于初始化
* web服务器在实例化完成Filter之后,然后调用
* init()之前,实例化一个FilterConfig对象,然后在调用init()
* FilterConfig提供了方法,用来访问当前Filter的配置参数
*/
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

config = arg0;
}

}

分享到:
评论

相关推荐

    Filter使用范例--登陆验证

    本文将深入探讨`Filter`的使用,并以一个登录验证的实例来阐述其工作原理和应用。 `Filter`是Java Servlet规范定义的一种机制,它允许开发者在请求到达目标Servlet或JSP之前以及响应离开Servlet容器返回给客户端...

    DirectShow播放网络媒体文件范例

    2. **过滤图**:多个过滤器通过连接形成一个过滤图(Filter Graph),表示了媒体数据从源到最终显示的完整处理流程。构建正确的过滤图是播放媒体的关键。 3. **网络源过滤器**:在网络媒体播放中,需要使用支持HTTP...

    基于微过滤器Minifilter的MiniSpy源码文件过滤驱动

    微过滤器(Minifilter)是微软在Windows操作系统中引入的一种新型文件系统过滤驱动模型,它是File System Filter Manager的一部分,旨在替代传统的文件系统挂钩(FSDH)。与FSDH相比,Minifilter提供了一种更加稳定...

    DirectShow开发指南_范例源代码_DsBkSource.7z

    过滤器负责处理特定的媒体任务,如视频捕获、解码、音频混合等,而连接器则负责将这些过滤器连接起来形成一个数据流处理管道。这种模块化设计使得DirectShow能够灵活地处理各种多媒体任务。 在这个压缩包中,...

    DirectShow开发指南_范例源代码_带书签

    DirectShow通过图形化表示的Filter Graph来管理和协调媒体数据的处理流程,每个Filter则代表图中的一个处理单元,如捕获设备、解码器、渲染器等。 Filter之间的连接是通过pins(引脚)完成的,pins定义了数据流动的...

    Java Web程序开发范例宝典 (源码) (上集)

    10. **过滤器(Filter)与监听器(Listener)**:这两个组件用于扩展Servlet容器的功能,可能包括登录验证、URL重写、session监听等。 11. **Ajax(Asynchronous JavaScript and XML)**:提升用户体验的技术,可能...

    [Dshow] MP3 player 超簡單範例程序

    在创建播放器时,我们需要找到适合的源过滤器(如MP3解码器)和渲染过滤器(如音频硬件输出),并将它们之间的Pins正确连接,以形成一个数据流处理图(Filter Graph)。 首先,你需要创建一个Filter Graph Manager...

    Java Web程序开发范例宝典源代码11-21

    7. **过滤器(Filter)和监听器(Listener)**:在Java Web中,过滤器用于拦截请求和响应,进行预处理或后处理,而监听器则监控Web应用的特定事件。源代码可能包含了登录检查过滤器、Session监听器等。 8. **Ajax...

    Directshow

    例如,一个典型的播放过滤器图可能包含源过滤器(获取媒体源)、解码过滤器(将编码的媒体数据转化为原始格式)和渲染过滤器(将媒体数据显示或输出到音箱)。 在压缩包中的DirectShow范例源代码,可能会涵盖以下几...

    Happytime Video Process Filter

    Happytime视频处理DirectShow过滤器是一个强大的传输过滤器。 可以旋转视频90,180,和270度,在90度和270度旋转时保持宽纵横比。 可以水平或垂直翻转视频,垂直或水平位移,缩放视频等 使用特殊的优化算法,超出你...

    android 6.0 sdk 官方编程范例

    开发者需要配置`AndroidManifest.xml`文件,声明对特定域的Intent过滤器,并通过`intent-filter`来声明支持的URL结构。此外,还需要设置应用验证,以确保只有被授权的应用才能处理链接。 此外,Android 6.0 SDK还...

    eclipse下struts入门范例

    这是每个Servlet项目的关键配置文件,用于定义Servlet和过滤器。在`&lt;web-app&gt;`标签内添加Struts2的Filter配置,如: ```xml &lt;filter&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;filter-class&gt;org.apache.struts2....

    Lucene.net 最新最全的范例

    - **过滤器(Filter)**:可以进一步限制搜索结果,如按日期、ID 过滤。 - **高亮显示(Highlighter)**:突出显示查询术语在搜索结果中的出现部分。 - **近实时搜索(Near Real-Time Search)**:索引更新后,...

    要求综合运用 STL,实现一个简单的垃圾邮件过滤程序

    本次作业要求综合运用 STL,实现一个简单的垃圾邮件过滤程序。 2、要求 (1)输入:您的执行程序必须能够读入三个参数。 第一个参数为垃圾邮件关键字文件名称 第二个参数为输入的电子邮件文件名称 第三个参数为...

    Java Web应用开发与实践范例

    例如,可以使用过滤器进行权限检查、字符编码转换等。 5. **Listener**:监听器是实现特定接口的Java类,它们监听Web应用中的特定事件,如会话创建、销毁、请求初始化等,可以用来执行相应的逻辑操作。 除了这些...

    Struts2+Spring2整合范例

    - 配置struts2的核心过滤器`struts2-convention-plugin.jar`在web.xml中,设置filter-name和filter-class,以及对应的filter-mapping。 - 创建struts2的主配置文件struts.xml,定义Action、结果类型和其他相关配置...

    android-image-filter-ndk,使用android ndk在c中处理位图的android示例项目.zip

    本项目"android-image-filter-ndk"是一个开源示例,它展示了如何利用NDK在C语言中处理Android位图,实现图像过滤器功能。 一、Android NDK基础 1. NDK的作用:NDK为Android应用提供了本地编程环境,使得开发者可以...

    JSP范例宝典 第8章

    JSP可以通过Java Servlet API中的HttpServletRequest对象的login()方法实现基本的身份验证,而授权则可以通过过滤器(Filter)和安全性相关的Servlet API来完成,例如使用JAAS(Java Authentication and ...

    GPUVideo-android:该库在生成Mp4和ExoPlayer视频以及使用Camera2进行视频录制时应用视频过滤器

    范例影片没有过滤器 申请 申请 申请 在ExoPlayer视频上应用视频过滤器 在使用Camera2的视频录制上应用视频过滤器。 Gradle 步骤1.将JitPack存储库添加到您的构建文件中 allprojects { repositories { .. ...

Global site tag (gtag.js) - Google Analytics