一、实验目的:
掌握Filter过滤器的原理与使用方法
二、实验内容:
- 编写一个过滤器LogFilter.java,对Request请求进行过滤,记录请求的访问时间、从请求获取远程地址、远程主机名、客户请求的资源URI,并记录到日志文件中。
- 编写过滤器实现:只允许客户端IP地址是219.218.*.*形式的访问站点,否则转到Error页面。
三、实验代码:
#####第一题:###
LogFilter.java文件:
index.jsp文件:
web.xml文件:
####第二题:###
IpFilter.java文件:
error.jsp文件:
success.jsp文件:
web.xml文件:
四、实验结果:
第一题:
1.访问http://localhost:8080/Test6_20221126_01/index.jsp,查看返回界面
2.查看Tomcat服务器打印的信息
3.查看日志信息log.txt
第二题:
自行查看本机ip为192.168.1.103,不符合规定的ip格式。
故不被允许访问,跳转到error界面
自行修改本机ip为219.218.1.1,此时ip符合规定的ip格式
再次运行,跳转到success界面
五、实验小结:
此次实验我完成了两个过滤器的编写,分别实现了对应的功能,通过此次实验我也对Filter过滤器有了更多的了解,它包括init()、doFilter()、destory()三个方法,其中init()方法用于对Filter内变量的初始化,doFilter()方法用于对每个请求及响应增加的额外处理,而destory()用于Filter内资源的回收(在销毁之前),其中doFilter()方法中包括了过滤器程序的主要功能。
此次实验整体难度较大,实验过程中我也出现了很多问题,经查阅资料后都顺利解决,现记录如下:
①生成日志文件log.txt时,若不指定文件的具体位置,即File file = new File("log.txt");这种情况下文件的默认生成路径为eclipse的安装包的路径,在我的电脑上的路径对应为“D:\software_insatll\eclipse”。为了更好地查看log,txt文件,此处建议在定义日志文件log.txt时直接加上目标路径。
②对于第一道题,刚开始我配置好三个文件后,就启动运行访问index.jsp文件,发现界面一直是404,但代码中没有发现错误。经过上网查阅资料,我发现应将web.xml文件放在目录/WebContent/WEB-INF下面,而将index.jsp文件放在目录/WebContent下面。将web.xml文件和index.jsp文件的位置进行修改后重新运行项目,成功得到了预期结果!