从零开始写javaweb框架笔记10-搭建轻量级JAVAWEB框架-确定目标

       从此开始搭建一个轻量级的java WEB框架,在开始之前,前面需要确定一个目标,我们的目标是打造一个轻量级的MVC框架,而Controller是MVC的核心,其实我们想要的是这样的Controller代码:

/**
 * 处理客户管理相关请求
 */
@Controller
public class CustomerController {
    @Inject
    private CustomerService customerService;
    /**
     * 进入客户列表界面
     */
    @Action("get:/customer")
    public view index(Param param){
        List<Customer> customerList=customerService.getCustomerList();
        return new view("customer_show.jsp").addModel("customerList",customerList);
    }
    /**
     * 显示客户信息
     */
    @Action("get:/customer_show")
    public view show(Param param){
        long id=param.getLong("id");
        Customer customer=customerService.getCustomer(id);
        return new view("customer_show.jsp").addModel("customer",customer);
    }
    /**
     * 进入创建客户 界面
     */
    @Action("get:/customer_create")
    public view create(Param param){
        return new view("customer_create.jsp");
    }
    /**
     * 处理创建客户请求
     */
    @Action("post:/customer_create")
    public Data createSubmit(Param param){
        Map<String,Object> fieldMap=param.getMap();
        boolean result=customerService.createCustomer(fieldMap);
        return new Data(result);
    }
    /**
     * 进入编辑客户界面
     */
    @Action("get:/customer_edit")
    public view edit(Param param){
        long id=param.getLong("id");
        Customer customer=customerService.getCustomer(id);
        return new View("customer_edit.jsp").addModel("customer",customer);
    }
    /**
     * 处理编辑客户请求
     */
    @Action("put:/customer_edit")
    public Data editSubmit(Param param){
        long id=param.getLong("id");
        Map<String,Object> fieldMap=param.getMap();
        boolean result=customerService.updateCustomer(id,fieldMap);
        return new Data(result);
    }
    /**
     * 处理编辑客户请求
     */
    @Action("delete:/customer_edit")
    public view delete(Param param){
        long id=param.getLong("id");
        boolean result=customerService.deleteCustomer(id);
        return new Data(result);
    }
}
  通过Controller注解来定义Controller类,在该类中可通过Inject(注解)注解定义一系列Service成员变量,这就是依赖注入。此外,有一系列被Action注解所定义的方法(简称Action方法),在这些Action方法中,调用了Service成员变量的方法来完成具体的业务逻辑。若返回View对象,则表示JSP页面;若返回Data对象,则表示一个JSON数据。

   Contoller代码非常清晰,一个Controller类包含了多个Action方法,可返回View或Data对象,分别对应JSP页面或者json数据。

    注意:在普通请求的情况下可返回JSP页面,在Ajax请求的情况下,需要返回json数据。

    现在Controller设计好了,这是我们想象中,还没具体实现这个控制器,在上一节中的也是想象的,没有具体实现,下面我们开始搭建一个开发环境,实现MVC框架,实现这个控制器。


### 回答1: 《架构探险 从零开始JavaWeb框架》这本书是一本关于如何从零开始构建JavaWeb框架的实践指南。这本书详细介绍了构建JavaWeb框架的基本原理、核心功能以及框架设计的各个方面。下面我将简要回答这个问题。 在这本书中,作者首先介绍了JavaWeb框架的基本概念和开发背景,以及为什么需要自己去构建一个JavaWeb框架。接着,作者分析了现有的开源JavaWeb框架的优缺点,并提出了自己的设计思路。 在框架的设计方面,作者使用了简单、灵活、易扩展的原则。他详细解释了框架的各个组件的功能和交互方式,比如控制器、模型、视图和数据层等。除此之外,作者还介绍了如何实现框架的依赖注入和AOP等功能,以及如何处理请求和响应等核心功能。 在框架的实现过程中,作者采用了优秀的开源框架作为基础,例如使用Servlet作为底层容器,使用Freemarker作为模板引擎,使用MySQL作为数据库等。通过实际的代码示例和详细的解释,读者可以更好地理解每个组件的功能和实现方式。 总的来说,《架构探险 从零开始JavaWeb框架》这本书通过将复杂的JavaWeb框架的设计和实现分解成简单的组件和步骤,帮助读者理解并掌握JavaWeb框架的构建过程。通过学习这本书,读者可以了解到一个完整的JavaWeb框架所需的各个组件和功能,并能够根据自己的需求进行定制和扩展。无论是对于初学者还是有一定经验的开发人员而言,这本书都是一本难得的实践指南。 ### 回答2: 《架构探险:从零开始JavaWeb框架》是一本非常实用的书籍,主要介绍了如何从零开始开发一个完整的JavaWeb框架。这本书的作者对于JavaWeb开发有着丰富的经验,通过本书的学习,读者可以掌握开发框架所需的各种核心知识和技术。 在书中,作者首先介绍了JavaWeb框架的概念和作用,以及为什么要从零开始开发一个框架。接着,作者详细讲解了框架的基本原则和设计思路,包括MVC模式、依赖注入、AOP等核心概念和技术。作者通过清晰的代码示例和实际案例,展示了如何使用这些技术来搭建一个可靠、高效的框架。 随后,作者开始逐步实现一个简单的JavaWeb框架。他从处理HTTP请求开始,依次实现了路由解析、参数绑定、控制器调用、视图渲染等功能。在实现的过程中,作者注重详细讲解每个步骤的实现原理和技术细节,读者可以通过跟随书中的示例代码进行实践和理解。 除了核心功能的实现,作者还介绍了一些框架的扩展功能,如连接池、事务管理、日志记录等。这些扩展功能可以使框架更加完善和灵活,提供更好的开发体验和性能优化。 总而言之,此书通过一个完整的JavaWeb框架实例,全面而系统地介绍了框架的设计与实现。读者通过学习本书,不仅可以掌握JavaWeb开发的核心知识和技术,还可以提升自己的架构设计能力和编码水平。无论是初学者还是有一定经验的开发者,都能从中受益匪浅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值