既然是项目,就会有需求.每个项目的开发,都伴随着一系列要解决的问题.
项目涉及,整个JavaWeb流程.jsp页面表现层.servlet和service两层业务逻辑层的处理.数据库以及数据库DAO的处理.动态代理.MVC模式.单元测试.集合.反射机制.开发原则
既然是项目,我们就要整理好清晰的思路,这也是少不了的项目架构.项目架构迭代.
搭建好项目架构--->数据库--->创建用户.授权.建表.存储数据等.pl/sql的方式
Eclipse开发环境
前台页面
对数据库用户操作流程
进行junit测试--->导入测试包--->建立测试环境
用户显示流程
user_list.jsp-->web.xml-->Servlet-->Service
jsp编译原理
Tomcat相关
基本就是这么个流程.
知识理论性的东西--->开发原则(实现目标的原则):1 开闭原则 : 一个实体应该对扩展开发,对修改关闭
2 里氏替换原则 : 能够使用父类的地方,一定可以用子类替换
3 接口隔离原则 : 接口尽量做到功能做小化,一个类对另一个类的依赖性,尽量建立在最小的接口上
4 合成/聚合复用原则 : 尽量使用合成/聚合,而不使用继承
6 迪米特原则 : 一个对象尽量对其他对象尽可能少的了解,业务型对象(客户端),当面对多的别的对象引用的时候,可以用一个第三方的对象中介
7 依赖倒转原则 : 依赖于抽象而不是依赖于具体.面向接口编程.面相抽象编程,而不是面向具体编程,就是在类对象调用的时候,在参数的位置,具体是接口或父类的引用
--->mvc模式 : 架构设计模式 : Model(模型):业务逻辑层,包含核心功能和数据并实现核心业务逻辑
View(视图):表示层,向用户显示信息
Controller(控制器):控制层,处理用户输入,并实现View层跟Model层的协同工作
模型(model) : 业务逻辑层,封装了业务逻辑和数据
业务逻辑(软件的核心)
数据以及访问他们的函数(视图组件使用)
执行特定应用程序处理的过程(控制代表用户调用)
模型对用户来说是不可见的(M与V独立)
模型独立于特定输出表示或者输入方式(M于C独立)
用户只能通过控制器操作模型(C是M于V之间的桥梁)
视图(View) : 表示层,就是用户看到并与之交互的界面,通常实现数据的输入和输出功能
从模型获取数据 : 通过状态查询函数实现
列如:定时刷新
向用户显示信息 : 不同的视图使用不同的方法呈现信息
每个视图组件都有一个更新函数,这个函数被模型变更通知激活
这个函数被积木哦(此时模型已经变更)后,将使用视图重新和模型一致
在初始化阶段,视图向模型登记请求变更通知(表)
控制器(Controller) : 控制层,起到控制整个业务流程的作用,实现View层跟Model层的协同工作.
每个视图有一个相关的控制器组件(一一对应)
用户仅仅通过控制器与系统交互
控制器组件接受事件,并翻译成输入 : 事件如何发送到控制器由用户界面平台决定
事件被翻译成为对模型或视图的求情
如果控制器的行为依赖于模型的状态,那么控制器也需要向模型登记求情变更通知
例如:用户点击按钮,按钮的事件响应函数将采取响应的措施处理用户要求
Adapter为什么可以往View里面传递数据因为我们所有的容器View都继承于AdapterView
使用mvc的目的 : 将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式
--->反射机制 : 反射 Reflection(反射,映像,倒影)在java语言中很重要的一个特性(比如镜子,可以看见自己,也可以看见别人的每一个部分).允许程序运行时(不是编译)来进行自我检查并且对内部的成员进行操作
java反射主要提供了以下功能 :1 在运行时判断任意一个对象所属的类。
2 在运行时构造任意一个类的对象。
3 在运行时判断任意一个类所具有的成员变量和方法。
4 在运行时调用任意一个对象的方法。
要想使用反射,首先需要获得待操作的类所对应的Class对象。
常用的获取class对象的三种方式: 1使用class类的静态方法(获得*.class类的对象)
new
Class.forName():获得当前类的下一个对象
2 获得.class对应的class对象
类名.class
3 获得对象中我们要调用的属性
获得构造方法
获得字段信息class反射调用不同于那些用于接入构造函数的调用,在参数类型数组.用于获得方法信息函数
直接get的都支持继承,不支持私有
getClass()方法定义在Object类中,不是静态方法,需要通过对象来调用,并且它声明为final,表明不能被子类所覆写。
反射机制修改: 1 提取所有servlet中的方法进行action匹配.
web.xml 前台页面,servlet逻辑
2 反射替代人工匹配
3 把反射逻辑和servlet具体方法分离
创建BaseServlet.java
继承
4 开发原则:开闭原则
.....................................................
jsp页面表现层: 用户列表
用户添加
权限列表
权限添加
权限修改
对于jsp页面的显示,是最基本的,首先要有Oracle表的建立.才会有将商品页面的增删改查.
Oracle建表就要涉及到用户的创建等等,sql语句,数据的存储.
jsp : JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的servlet设计.
它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑.Java Servlet是JSP的技术基础.
CMS体育系统经历了六次迭代............
我觉得一个项目重要的是思路是架构,架构清晰,就能一步步去实现,不乱套.
其中 BaseServlet.接受前台请求,并映射对应方法.实现方法反射.
DAO层呢.最小化数据库操作
permission这是一个实体包具体实现前端请求方法,继承BaseServlet
service包.是一个逻辑包.servlet数据层中间层包
util常用工具包