从零开始写javaweb框架笔记10-搭建轻量级JAVAWEB框架-确定目标
来源:互联网 发布:网络优化需要培训费吗 编辑:程序博客网 时间:2024/06/04 20:35
从此开始搭建一个轻量级的java WEB框架,在开始之前,前面需要确定一个目标,我们的目标是打造一个轻量级的MVC框架,而Controller是MVC的核心,其实我们想要的是这样的Controller代码:
/** * 处理客户管理相关请求 */@Controllerpublic 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框架,实现这个控制器。
0 0
- 从零开始写javaweb框架笔记10-搭建轻量级JAVAWEB框架-确定目标
- 从零开始写javaweb框架笔记16-搭建轻量级JAVAWEB框架-加载Controller,初始化框架
- 从零开始写javaweb框架笔记16-搭建轻量级JAVAWEB框架-加载Controller,初始化框架
- 从零开始写javaweb框架笔记11-搭建轻量级JAVAWEB框架-搭建开发环境
- 从零开始写javaweb框架笔记13-搭建轻量级JAVAWEB框架-开发一个类加载器
- 从零开始写javaweb框架笔记14-搭建轻量级JAVAWEB框架-实现Bean容器
- 从零开始写javaweb框架笔记15-搭建轻量级JAVAWEB框架-实现依赖注入功能
- 从零开始写javaweb框架笔记17-搭建轻量级JAVAWEB框架-请求转发
- 从零开始写javaweb框架笔记13-搭建轻量级JAVAWEB框架-开发一个类加载器
- 从零开始写javaweb框架笔记14-搭建轻量级JAVAWEB框架-实现Bean容器
- 从零开始写javaweb框架笔记15-搭建轻量级JAVAWEB框架-实现依赖注入功能
- 从零开始写javaweb框架笔记12-搭建轻量级JAVAWEB框架-定义框架配置项,加载配置项
- [笔记]架构探险-从零开始写JavaWeb框架-1. 之搭建轻量级mvc框架
- 从零开始写javaweb框架笔记2-搭建web项目框架
- 从零开始写javaweb框架笔记7-动手开发web应用
- 架构探险 从零开始写javaweb框架
- 《从零开始写Javaweb框架》知识点--配置文件读取
- 《从零开始写Javaweb框架》知识点--dispatcherServlet
- Echars在bootstrap的tab下切换不能正常显示的问题
- iOS开发实践之多线程(GCD)
- android studio在编辑时出现如Failed to sync Gradle project类似的问题时的解决方案
- PyQt5系列教程(六)如何让界面和逻辑分离
- three.js学习笔记 相机控件
- 从零开始写javaweb框架笔记10-搭建轻量级JAVAWEB框架-确定目标
- 经典C语言程序设计100例
- C/C++基本数据类型所占字节数
- Golang初级系列教程-控制结构-defer语句
- new delete与malloc free之内存管理(1)
- 统计互不相同且无重复数字的三位数个数
- Android 的消息机制
- 编程语言的故事(一)
- xcode7.1不能真机调试ios9.2系统的解决方法