1700484541
❑辅助工具
1700484542
1700484543
它其实就是一大堆的辅助管理工具,比如文件管理、对象管理等等。
1700484544
1700484545
在我们的MVC框架中,核心控制器是最重要的,我们就先从它着手。核心控制器使用了Servlet容器的过滤器技术,需要编写一个过滤器,所有进入MVC框架的请求都需要经过核心控制器的转发,类图如图38-4所示。
1700484546
1700484547
1700484548
1700484549
1700484550
图38-4 核心控制器类图
1700484551
1700484552
由于类图中的部分输入参数类型较长,省略掉了,请读者仔细看代码。首先阅读FilterDispatcher代码,如代码清单38-1所示。
1700484553
1700484554
代码清单38-1 核心控制器
1700484555
1700484556
public class FilterDispatcher implements Filter{
1700484557
1700484558
//定义一个值栈辅助类
1700484559
1700484560
private ValueStackHelper valueStackHelper=new ValueStackHelper();
1700484561
1700484562
//应用IActionDispatcher
1700484563
1700484564
IActionDispather actionDispatcher=new ActionDispatcher();
1700484565
1700484566
//servlet销毁时要做的事情
1700484567
1700484568
public void destroy(){
1700484569
1700484570
}
1700484571
1700484572
//过滤器必须实现的方法
1700484573
1700484574
public void doFilter(ServletRequest request,ServletResponse response,
1700484575
1700484576
FilterChain chain)throws IOException,ServletException{
1700484577
1700484578
//转换为HttpServletRequest
1700484579
1700484580
HttpServletRequest req=(HttpServletRequest)request;
1700484581
1700484582
HttpServletResponse res=(HttpServletResponse)response;
1700484583
1700484584
//传递到其他过滤器处理
1700484585
1700484586
chain.doFilter(req,res);
1700484587
1700484588
//获得从HTTP请求的ACTION名称
1700484589
1700484590
String actionName=getActionNameFromURI(req);
[
上一页 ]
[ :1.700484541e+09 ]
[
下一页 ]