最近老师让我们开始做简单的购物系统这样一个项目,到了今天就还剩最后一个功能——过滤器,拦截那些跳过登录而直接恶意访问里面资源文件的操作。
我专业课老师在讲Filter这一节内容时,也引用过网上别人博客的例子,但我去模仿那些例子用一下那些代码的时候,发现都不尽人意。
比如说这一例子:
来源:(3条消息) JavaWeb-03-Servlet-15-过滤器防止用户恶意登陆_防止恶意登录_TSCCG的博客-CSDN博客
从上面的例子来看,他用了session是否为空来判断用户是否恶意登录:按理来说,如果用户跳过登录,那么session就为空;而只有正确登录,session才不为空。
经过我的测试,该方法并不奏效,我询问过我的老师,她是那么地解释:你在启动服务器,跳出第一个页面的时候,服务器就已经给你创建了session并且放入了数据了,而在过滤器的session不为空的判断中,始终为true。
那么如何去改进呢?让过滤器真正起到拦截恶意登录的作用?以下是我,作为一名大二软件工程专业萌新的解决办法。
第一版:
package Filter;
import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebFilter(filterName = "AFilter",value = "*.jsp")
public class AFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IO