一、前言
这是一篇关于java拦截器的文章,是我在编写java web时遇到的问题。 我们写网站的时候,要进入这个系统就必须通过登录页面。 那么,我必须写一个java拦截器。 任何已登录并进入系统的用户都可以访问任何文件或jsp页面。 如果非登录接口是想访问系统或者想做什么的用户,我们不允许他访问我们的系统。 这就是拦截器的功能。
二、代码实现
要实现这一功能,必须编写一个继承名为Fliter的类的类。 这里强调一下,我的这个班是在com.wz.common上创建的。 具体的代码实现如下:
packagecom.wz.common; importjava.io.IOException; 导入javax.servlet.filter; 导入javax.servlet.filter chain; 导入javax.servlet.filter config; 导入javax.servlet.servlet exception; 导入javax.servlet.servlet request; 导入javax.servlet.servlet response; import javax.servlet.http.http servlet请求; import javax.servlet.http.http无servlet保罗; 导入javax.servlet.http.http session; publicclassloginfilterimplementsfilter {
@ override公共void destroy () {//todo auto-generated method stub
}
@ overridepublicvoiddofilter (servletrequestrequest,ServletResponse response,FilterChain chain ) throwsIOException,servle
httpservletrequestservletrequest=(http servlet请求)请求;
httpservletresponseservletresponse=(http servlet响应)响应;
http会话会话=servlet request.getsession (; //获取请求的URL
string path=servlet request.getrequest uri (; //输出看看路径
system.out.println('path下一个路径' path );
stringid=(string ) session.getattribute('id ); //登录页面不需要过滤
if(path.indexof(/login.JSP )-1 ) {
chain.dofilter(servletrequest,servletResponse; 返回;
//如果没有员工的信息,则判断为跳至登录页
if(id==null ) {
servlet response.sendredirect (' ./log in.JSP ' );
}else{
chain.dofilter(servletrequest,servletResponse;
}
}
@ overridepublicvoidinit (filter configarg0) throwsservletexception (/todo auto-generatedmethodstub
}
}
三. web.xml配置
代码已实现。 需要此web.xml实现配置。 需要阻止的文件夹如下图所示。 因为在Admin下,所以我想阻止文件夹。
web.xml的文件配置代码如下:
login
com.wz.common.LoginFilter
login
/Admin/*
四.个人总结
学习新事物,我们只要静下心来,做百度以上就行了。 感受一直在学习的自己!