开发学院软件开发Java 设计 REST 风格的 MVC 框架 阅读

设计 REST 风格的 MVC 框架

 2010-01-08 00:00:00 来源:WEB开发网   
核心提示: 处理静态文件时要过滤 /WEB-INF/ 目录,否则将造成安全漏洞,设计 REST 风格的 MVC 框架(9),集成模板引擎作为示例,返回一个“<h1>Hello, world!</h1>”作为 HTML 页面非常容易,清单 12. 定义 Temp

处理静态文件时要过滤 /WEB-INF/ 目录,否则将造成安全漏洞。

集成模板引擎

作为示例,返回一个“<h1>Hello, world!</h1>”作为 HTML 页面非常容易。然而,实际应用的页面通常是极其复杂的,需要一个模板引擎来渲染出 HTML。可以把 JSP 看作是一种模板,只要不在 JSP 页面中编写复杂的 Java 代码。我们的设计目标是实现对 JSP 和 Velocity 这两种模板的支持。

和集成 IoC 框架类似,我们需要解耦 MVC 与模板系统,因此,TemplateFactory 用于初始化模板引擎,并返回 Template 模板对象。TemplateFactory 定义见清单 11。


清单 11. 定义 TemplateFactory
public abstract class TemplateFactory { 
  private static TemplateFactory instance; 
  public static TemplateFactory getTemplateFactory() { 
    return instance; 
  } 
 
  public abstract Template loadTemplate(String path) throws Exception; 
} 

Template 接口则实现真正的渲染任务。定义见清单 12。


清单 12. 定义 Template
public interface Template { 
  void render(HttpServletRequest request, HttpServletResponse response, 
    Map<String, Object> model) throws Exception; 
} 

以 JSP 为例,实现 JspTemplateFactory 非常容易。代码见清单 13。


清单 13. 定义 JspTemplateFactory
public class JspTemplateFactory extends TemplateFactory { 
  private Log log = LogFactory.getLog(getClass()); 
 
  public Template loadTemplate(String path) throws Exception { 
    if (log.isDebugEnabled()) 
      log.debug("Load JSP template '" + path + "'."); 
    return new JspTemplate(path); 
  } 
 
  public void init(Config config) { 
    log.info("JspTemplateFactory init ok."); 
  } 
} 

上一页  4 5 6 7 8 9 10  下一页

Tags:设计 REST 风格

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接