博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
过滤器
阅读量:6624 次
发布时间:2019-06-25

本文共 2565 字,大约阅读时间需要 8 分钟。

学习感受

今天学习了过滤器,感觉过滤器并不是很难理解。过滤器就是一个在请求的时候需要对请求进行预处理,然后到达服务器,在服务器得到响应之后,再进行后处理的一个过滤器。

构建过滤器的一般步骤

构建过滤器一般分为两步,第一步,实现过滤器类,主要是实现doFilter方法,第二步,在web.xml文件注册过滤器。

过滤器简单实例

下面,我们就两个简单的过滤器进行实现,一个是解决中文乱码问题,一个是解决用户登录的安全权限问题。 中文乱码问题:

public class CharacterEncodingFilter implements Filter{    private FilterConfig config;        @Override	public void destroy() {	}	@Override	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)			throws IOException, ServletException {			request.setCharacterEncoding(config.getInitParameter("charset"));		//请求拦截处理完成之后,要调用chain对象的doFilter方法告诉服务器请求拦截处理已经完成了		chain.doFilter(request, response);	}	@Override	public void init(FilterConfig config) throws ServletException {		this.config = config;	}	public FilterConfig getConfig() {		return config;	}	public void setConfig(FilterConfig config) {		this.config = config;	}}复制代码

其次,我们在web.xml文件进行注册:

characterEncodingFilter
filter.CharacterEncodingFilter
charset
UTF-8
characterEncodingFilter
/*
复制代码

下面,我们进行下一个过滤器,解决用户登录安全权限问题:

package filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class SessionFilter implements Filter {	@Override	public void destroy() {			}	@Override	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)			throws IOException, ServletException {				//做一个类型转换,将request转换成HTTPServletRequest的对象		HttpServletRequest hrequest = (HttpServletRequest)request;		HttpServletResponse hresponse = (HttpServletResponse)response;		//判断用户session中是否有用户的登录名称来判断用户是否进行登录操作		String loginUser = (String)hrequest.getSession().getAttribute("loginUser");				//如果值为null的话,说明用户没有登录,做一个强制的重定向,转到登录界面		if(loginUser == null) {			hresponse.sendRedirect(hrequest.getContextPath()+"/index.jsp?flag=1");			return;		}else {			chain.doFilter(hrequest, hresponse);			return;		}	}	@Override	public void init(FilterConfig filterConfig) throws ServletException {			}}复制代码

web.xml文件注册过滤器

sessionFilter
filter.SessionFilter
sessionFilter
/message.jsp
复制代码

转载地址:http://kvxpo.baihongyu.com/

你可能感兴趣的文章
课后作业—阅读笔记
查看>>
简历求职:STAR法则
查看>>
oracle导出数据加密,oracle数据出现愤怒加密算法
查看>>
linux popen获取ip地址,使用popen函数读取命令输出失败
查看>>
python 编辑html文件内容,使用Python解析和编辑HTML文件
查看>>
切换 ip 批处理
查看>>
CommandArgument 绑定多个参数
查看>>
dropdownlist可以多选。类似的例子。。。
查看>>
Objective-C 内存管理
查看>>
Linux下rz,sz与ssh的配合使用
查看>>
pku 1054 The Troublesome Frog 暴力+剪枝
查看>>
串行,并行,并发
查看>>
webservice测试工具
查看>>
Porting .Net RSA xml keys to Java
查看>>
检测 nginx.conf 是否配置正确
查看>>
最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和...
查看>>
测试妹子的呐喊:为什么总是收不到推送?
查看>>
linux NFS
查看>>
Jquery DataTable基本使用
查看>>
leetcode 674. Longest Continuous Increasing Subsequence
查看>>