文章目录
CRM项目总结
第零步:整体分析第一步:搭建开发环境第二步:mybatis逆向工程第三步:登录功能第四步:安全退出功能第五步:创建活动功能第六步:日历功能第七步:导出市场活动第八步:apache-poi插件第九步:Cookie第十步:Filter拦截器第十一步:监听器第十二步:json第十三步:maven第十四步:mvc架构第十五步:mybits第十六步:Servlet第十七步:Http协议
CRM项目总结
第零步:整体分析
分系统功能和业务功能
先做系统功能(被依赖),再做业务功能
第一步:搭建开发环境
用idea创建工程,一个工程包括多个模块
模板maven创建web项目(注意idea与maven的结合,主要是仓库的配置一致) 写三坐标
补全目录构造 设置编码格式
添加jar包 maven添加依赖
添加配置文件 mybatis-config.xml applicationContext-datasource.xml(配置数据连接和事务 ,扫描mapper)
applicationContext-mvc.xml (扫描controller) applicationContext.xml(spring总的配置文件 ,扫描service)
web.xml(web核心配置文件 web项目启动,运行所需部件的 加载上面的三个配置文件)
项目最终部署到tomcat上的webapps目录上
web应用根目录下的内容都是不安全的,外界可以直接访问 所以一般为了数据安全,都把页面放到WEB-INF下
|->crm
|->.html .css .js .img
|->classes
|->lib 寄存jar包
在idea中配置tomcat,注意仓库名的正确性 部署war exploded的包
第二步:mybatis逆向工程
根据表生成mapper层的三层代码
实体类,mapper接口,映射文件
创建maven工程,不用模板 默认继承关系 去掉继承关系
添加逆向工程的插件 在pom.xml中配置插件
需要的三类信息
配置文件 generatorConfig.xml
第三步:登录功能
客户端 (用户输入用户名和密码 用户点击登录按钮或者回车键) 响应给前端 json字符串
Usercontroller(异步恳求 获取所需参数 用户名 密码 是否记住密码 封装参数) 根据查询结果生成响应信息
UserService(queryUserByLoginPwd(map))
UserMapper(selectUserByLoginAndPwd(map))执行SQL语句 封装成实体类 user
第四步:安全退出功能
客户端(用户点击退出按钮, 弹出确认的模态窗口,用户点击确认)
UserController(同步恳求 --清空cookie–销毁session–返回响应信息–跳转到首页)
第五步:创建活动功能
客户端(用户点击创建活动按钮,解析json渲染页面)
ActivityController(异步恳求 只是刷新部分列表 需要参数–表单中所有参数 获取参数–封装参数–方法保管创建的活动)
ActivityMapper(执行sql,返回影响的记录条数 发送响应json 包括是否从胜利)
第六步:日历功能
引入日历插件 三步走
引入开发包(css之间没有调用,js有 属于js引入有顺序)创建容器(单行文本框)当容器加载完成后,对容器调用工具函数(选中容器,调工具函数)
第七步:导出市场活动
给“导出”按钮添加单击事件,发送导出恳求查询所有的活动创建Excel文件,把活动写入进去把生成的excel文件输出到阅读器(文件下载)
优化导出市场活动:因为使用文件输出流访问磁盘了 所以效率很慢(把内存写到磁盘了)
文件在磁盘里面存的 ,输出流在内存中的
数据库里面的数据存到磁盘里面的
直接从内存到内存 直接写到输出流里面
第八步:apache-poi插件
简介:把办公文档中的元素都转变成java类来操作
使用
如何根据一个文件生成输出流
输出流的对象 用文件输出流 FileOutputStream(有流,捕获异常)
第九步:Cookie
创建Cookie,把Cookie保管到阅读器端
第十步:Filter拦截器
定义类实现拦截器接口,重写方法
前,中,后
类似于Servlet的生命周期:初始化,效劳,销毁
配置文件配置Filter
拦截器里面设置编码
一个service是一个事务,应该在Service中设置事务
第十一步:监听器
配置xml文件
监听上下文启动,在上下文启动时创建ioc容器,然后将其保管到application作用域
后面的中央控制器从application中获取ioc容器
第十二步:json
json是一种数据格式 xml也是一种数据格式
假设user是从数据库里面查询出的,将其转成json格式,发送给客户端
第十三步:maven
为了改进项目的开发和管理,使用maven(三坐标)
可以下载,管理jar文件协助你编译程序,测试代码,打包文件帮你部署项目
第十四步:mvc架构
MVC:Model(模型) View(视图) Controlle(控制器)
视图层:用于数据展示和用户交互控制层:接受客户端恳求,处置办业务模型层:有简单的pojo模型,业务组件模型等
第十五步:mybits
传统开发常用三层架构
界面层
业务逻辑层
数据访问层
而mybits能提供什么功能
提供创建Connection,Statement,ResultSet的才干,开发人员不用自己创建了提供了执行sql语句的才干提供了循环sql,把SQL的结果转为java对象,list集合提供了关闭资源的才干,不用你关闭Connection,Statement,ResultSet
总结:mybits是一个sql映射框架,提供了数据库的操作才干。加强的jdbc,开发人员可专注的提供sql语句
实现步骤:
新建student表maven中添加依赖创建实体类 Student保管表中的一行数据创建耐久层的dao接口,定义操作数据库的方法创建mybits的xml配置文件叫做sql映射文件:写sql语句的创建mybits主配置文件,一个项目有一个主配置文件,主配置文件提供数据库连接信息和sql映射文件位置信息创建使用mybits类,通过mybits访问数据库
sql映射文件和dao类一层目录
主要类介绍
Resourses:主要读取主配置文件
SqlSessionFactoryBuilder:创建SqlSessionFactory对象
SqlSessionFactory:获取Session对象,执行Sql语句
第十六步:Servlet
问题:add怎么和addServlet对应上的
两者对应关系 mapping为映射的意思 注意/
Servlet恳求参数中文乱码的问题
Tomcat8开端,设置编码,只针对post方式
Servlet优化
DisPatchServlets完成了三大步骤
根据恳求拆解成index型的解析xml文件,找到id和class存到map集合里面index在map集合里找到,调用controller的对象方法
第十七步:Http协议
Http为超文本传输协议
是无状态的(http无法判断两次恳求是同一个客户端发来的,还是不同客户端发来的,可通过会话跟踪技术处置无状态问题)
其恳求响应包含两个部分:恳求和响应
恳求包含
恳求行:恳求方式,恳求消息头,恳求的协议恳求消息头:包含很多阅读器告诉效劳器的信息:我的阅读器型号,类型…恳求主体:get方式没有恳求体,post和json有
响应包含
响应行:协议,状态码,响应体响应头:包含效劳器的信息,效劳器发给阅读器的信息响应体:响应的实际内容
|