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(request, response);完成过滤器的继续转发;
过滤器对一次请求的完成需要两次操作:请求进入过滤器,响应从过滤器出来;
—实例:
package com.xjy.servlet;
import java.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 request, ServletResponse response, FilterChain chain) throws ServletException,IOException
{
try
{
request.setCharacterEncoding(“GB2312”); // 对通过此过滤器的页面统一编码为服务器编码,
}
catch (Exception e)
{
e.printStackTrace();
}
if (request.getParameter(“input”) != null)
{
if (request.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()
{
}
}
/*
*/
// 过滤器是在开发完成部署时最后加入的具体组件;
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《java web编程-过滤器的用法举例》
本文地址:http://www.xiupu.net/archives-202.html
关注公众号:
微信赞赏
支付宝赞赏