发表于: 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 这个问题,是我的驱动问题
把这个更新一下就行了
评论