java web编程-过滤器的用法举例

过滤器:

Servlet程序的主要分类:
1。标准servelet(JSP) — MVC
2。过滤Servlet (过滤器)
3。监听Servlet(监听器)
过滤器,后加入的功能;
1。用户是否登录过滤(以前是jsp判断session);
2。网上聊天系统,屏蔽非法文字;
以上功能是自动完成的;
javax.servlet:
interface Filter;
public void init(FilterConfig filterConfig) throws ServletException;
// 过滤器初始化;
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException,IOException;
// 可以发现此方法的参数是标准Servlet的doGet、doPost方法传递的参数:HttpServletRequest、HttpServletResponse的父接口,说明此方法可以处理除http协议的其他协议子类的;
public void destroy();
1。过滤器初始化是在初始化时完成的;
2。过滤器完成的操作属于第三方的程序组件,对所有通过该过滤器的页面进行定义的过滤操作,比如验证非法信息、验证session、统一设置编码、等;
3。url-pattern:/*表示对所有的页面执行当前过滤;
/Xx表示过滤具体的页面;
4。被过滤的页面必须由过滤器传输到最终用户,否则会被过滤屏蔽;
该操作由FilterChain完成;chain.doFilter(, response);完成过滤器的继续转发;
过滤器对一次请求的完成需要两次操作:请求进入过滤器,响应从过滤器出来;
—实例:

package com.xjy.servlet;

import .io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class FilterServlet implements Filter

{

public void init(FilterConfig filterConfig) throws ServletException

{

System.out.println(“过滤器初始化!”);

}

public void doFilter(ServletRequest , ServletResponse response, FilterChain chain) throws ServletException,IOException

{

try

{

.setCharacterEncoding(“GB2312”); // 对通过此过滤器的页面统一编码为编码,

}

catch (Exception e)

{

e.printStackTrace();

}

if (.getParameter(“input”) != null)

{

if (.getParameter(“input”).indexOf(“ABC”) == -1)

{

// 不含有非法文字,继续转发

chain.doFilter(request, response);

}

else

{

PrintWriter out = null;

out = response.getWriter();

out.println(“非法文字!”);

}

}

else

{

chain.doFilter(request, response);

}

/* 验证session

HttpServletRequest req = (HttpServletRequest)request; // 向下转型,以使用http协议中的session

HttpSession session = req.getSession();

if (session.getAttribute(“name”) != null) // session不为空,认为已登录

{

// 执行上面的转发操作

}

else

{ // 跳转到登陆页;

request.getRequestDispatcher(“login.jsp”).forward(request, response);

}

*/

}

public void destroy()

{

}

}

/*

filter
com.xjy.servlet.FilterServlet


filter
/input

*/
// 过滤器是在开发完成部署时最后加入的具体组件;

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《java web编程-过滤器的用法举例
本文地址:https://www.zhiletu.com/archives-202.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微