`
mackmack
  • 浏览: 21671 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Core J2EE Patterns 2nd Editioin解读2

    博客分类:
  • book
阅读更多

 

?J2EE Pattern (Presentation Tier Patterns)
?
  • Intercepting Filter

  • Front Controller

  • Context Object

  • Application Controller

  • View Helper

  • Composite View

  • Service to Worker

  • Dispatcher View

 

  1. 分析Intercepting Filter和Front Controller
    Intercepting Filter这一部分没有什么好说的,因为我们web项目运行在servlet容器时,我们的就可以天然的运用过滤器了。
    书中提到Servlet 2.3之后,我们用过滤器时可以提供一个基类TemplateFilter,它继承javax.servlet.Filter ,通过它封装基本的Filter代码。当其之类在调用它的时候就可以直接完成过滤前的操作和过滤后的操作了。(这是让仿佛让我想起AOP)

    ?1?? public abstract class TemplateFilter implements javax.servlet.Filter {
    2???? private FilterConfig filterConfig;

    3???? public void init(FilterConfig filterConfig) throws ServletException {
    4?????? this.filterConfig = filterConfig;
    5???? }

    7???? protected FilterConfig getFilterConfig()??? {
    8?????? return filterConfig;
    9???? }

    11??? public void doFilter(ServletRequest request,
    12??????? ServletResponse response, FilterChain chain)
    13??????? throws IOException, ServletException {
    14
    15?????? // Preprocessing for each filter
    16?????? doPreProcessing(request, response);
    17
    18?????? // Pass control to the next filter in the chain or
    19?????? // to the target resource. This method invocation is what logically
    20?????? // demarcates preprocessing from postprocessing.
    21?????? chain.doFilter(request, response);
    22
    23?????? // Post-processing for each filter
    24?????? doPostProcessing(request, response);
    25???? }

    26???? public abstract void doPreProcessing(ServletRequest request,
    27???????? ServletResponse response) { }
    28
    29???? public abstract void doPostProcessing(ServletRequest request,
    30???????? ServletResponse response) { }

    32???? public void destroy() { }
    33? }


    子类调用
    ?1?? public class LoggingFilter extends TemplateFilter {
    2???? public void doPreProcessing(ServletRequest req, ServletResponse res) {
    3?????? //do some preprocessing here, such as logging some information about
    4?????? // the request before it's been handled.
    5???? }
    6
    7???? public void doPostProcessing(ServletRequest req, ServletResponse res){
    8?????? // do some post-processing here, such as logging some information
    9?????? // about the request and response after the request has been handled
    10????? // and the response generated.
    11???? }
    12? }

    Front Controller
    struts in action
    中描述其运用此模式:
    we see that the ActionServlet receives user gestures and state
    changes. Another way to say it is that the ActionServlet provides a centralized
    access point for request handling. This called the Front Controller pattern, and it is
    a key feature of the Model 2 approach. This pattern allows the centralization of
    code relating to system services, security services, content retrieval, view manage-
    ment, and navigation, so that application code is not endlessly duplicated or com-
    mingled with view content
    我们可以看到ActionServlet类接收的是用户动作和其状态的改变。也就是说ActionServlet这个类提供的是一个集中切入点处理request请求。这就是前端控制模式,它也是作为Model2模型的一种重要方法。前端控制器这种模式允许集中管理相关的系统服务、安全服务、内容检索、视图管理、导航,使应用代码不再重复或者在视图层的代码不再混淆。

????????? core J2EE pattern?
?????????

???????? 因此我们可以想象struts通过封装ActionServlet类来进行Servlet的分发,对前端进行控制起到FrontController的作用。Action起着ApplicationController的作用。ActionMapping作为分发的作用。

随后通过powerdesigner逆向查看,得出结果....

待续...

分享到:
评论
1 楼 hzxlb910 2014-01-16  
???????????

相关推荐

    Core J2EE Patterns 2nd Editioin

    Core J2EE Patterns 2nd Editioin

    core j2ee patterns 2nd editioin

    3. **J2EE(Java 2 Platform, Enterprise Edition)**:J2EE是Java企业级应用的开发框架,包含了一系列的API和服务,如Servlet、JSP、JMS、JTA等。书中可能讲解了如何利用这些组件来构建分布式系统,以及如何处理...

    J2EE核心模式(Core J2EE Patterns)

    《J2EE核心模式(Core J2EE Patterns)》是一本深度探讨J2EE平台设计模式的权威著作,由SUN公司的资深工程师倾力撰写。这本书是Java企业级开发者的必备参考书籍,它揭示了在复杂的企业级应用开发中,如何有效地利用...

    J2EE核心模式 Core J2EE Patterns 中文版 part1 of 2

    中文版压缩成2卷,这是第一卷。  本书讲解使用J2EE核心技术实现企业应用过程中的模式、最佳实践、设计策略以及经过验证的解决方案,涵盖了JSP、servlet、EJB、JMS等技术,其中J2EE模式目录包括21个模式以及大量策略...

    Core J2EE Patterns

    Core J2EE Patterns

    Core J2EE Patterns核心模式第二版源码

    《Core J2EE Patterns》是Java企业级应用开发的经典之作,它详细介绍了在J2EE平台上构建可扩展、高效、可维护的系统所使用的最佳实践和设计模式。这本书的第二版源码对于深入理解J2EE开发中的核心概念和技术具有极高...

    Core J2EE Patterns(Second Edition)

    《Core J2EE Patterns(Second Edition)》是Java企业级应用开发的重要参考资料,它深入探讨了J2EE(Java 2 Platform, Enterprise Edition)平台上的设计模式和最佳实践。这本书的.chm格式意味着它是一个微软的帮助...

    Core J2EE Patterns - Best Practices and Design Strategies - 2nd Edition

    《Core J2EE Patterns: Best Practices and Design Strategies》第二版是一本面向Java 2 Platform, Enterprise Edition (J2EE) 开发者的专业指南。本书由Deepak Alur、John Crupi和Dan Malks三位资深架构师编写,...

    core j2ee patterns [3 parts] - part2

    prentice hall - core j2ee patterns - best practices and design strategies, second edition.part2

    core j2ee patterns [3 parts] - part 3

    prentice hall - core j2ee patterns - best practices and design strategies, second edition.part3

    CoreJ2EE_Patterns2nd_pdf_chm.rar

    The book of CoreJ2EE_Patterns2nd is very good book to study J2EE,it contains both pdf and chm formats.

    SUN - Core J2EE patterns

    《SUN - Core J2EE patterns》一书深入探讨了Java 2 Platform, Enterprise Edition (J2EE)架构中的设计模式与最佳实践,为开发者提供了一套系统化的解决方案,旨在帮助他们在复杂的企业级应用开发中避免常见的陷阱和...

    core j2ee patterns [3 parts] - part1

    prentice hall - core j2ee patterns - best practices and design strategies, second edition.part1

    Core j2ee Patterns Best Practices And Design Strategies

    标题《Core J2EE Patterns Best Practices And Design Strategies》和描述部分介绍了软件设计模式的重要性,将设计模式比喻为一个组织的“部落记忆”的有形体现。设计模式是解决常见问题的通用解决方案,它源自之前...

    Core J2EE Patterns(英文版)

    ### Core J2EE Patterns:拦截过滤器模式 (Intercepting Filter) #### 背景与情境 在J2EE环境中,请求处理机制需要处理多种类型的客户端请求,这些请求可能涉及不同的处理逻辑。例如,某些请求可能直接转发到相应...

    J2EE core design patterns j2ee 核心设计模式 chm

    《J2EE Core Design Patterns》是一本专注于Java企业级应用开发中的核心设计模式的重要书籍。设计模式是软件工程中经过实践验证的、解决特定问题的模板,尤其在复杂如J2EE(Java 2 Platform, Enterprise Edition)...

    J2EE Patterns.chm

    J2EE Patterns.chm

Global site tag (gtag.js) - Google Analytics