发表于: 2017-05-19 21:14:32

2 1091


【说明】今天做了什么呢,最有价值的就是baseServletFilter了,因为所有的servlet 调用前都需要先运行这个类的dofilter方法

一:今日完成

1)关于 chain.doFilter(request,response)

先是碰到了这个过滤链,因为自己写了四个过滤类,所以花了点时间把这个给弄明白了。


他的作用是将请求转发给过滤器链上下一个对象。这里的下一个指的是下一个 filter,如果没有 filter 那就是你请求的资源。 一般 filter 都是一个链, web.xml 里面配置了几个就有几个。一个一个的连在一起 

request -> filter1 -> filter2 ->filter3 -> .... -> request resource.

2)BackServletFilter

主要就是把请求的uri 给过滤一下,得到正确的跳转地址

 @Override

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)

            throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) req;

        HttpServletResponse response = (HttpServletResponse) res;

         

        String contextPath=request.getServletContext().getContextPath();

        String uri = request.getRequestURI();

        uri =StringUtils.remove(uri, contextPath);

        if(uri.startsWith("/admin_")){      

            String servletPath = StringUtils.substringBetween(uri,"_", "_") + "Servlet";

            String method = StringUtils.substringAfterLast(uri,"_" );

            request.setAttribute("method", method);

            req.getRequestDispatcher("/" + servletPath).forward(request, response);

            return;

        }

        chain.doFilter(request, response);

    }

二:明日计划

继续写BaseServlet 和  CategoryServlet

三:疑难问题

借助反射机制调用 CategoryServlet 类中的 list() 方法

四:思考总结

连接校园网的时候,出现不能找到以太网 IP 这个问题,是我的驱动问题

把这个更新一下就行了



返回列表 返回列表
评论

    分享到