前言
- 最近在学习使用spring boot 开发项目时,深刻的感受到了spring boot 的强大,该框架已经帮我们把所有的配置都封装好了,我们只需要配置数据库连接池,就可以开始写业务逻辑了;一下子省了这个多,还真有点不习惯,回想起以前开发项目,会用session来判断是否为登录状态、会用到拦截器来拦截请求等等,一个项目中会配置各种组件,才能使项目按照我们所期望的逻辑运行,怎样才算是一个完整的项目,在不同的阶段我们会使用不同的方式来实现同样的需求,后面学的框架就是在已有的基础上不断封装,使开发变的更简单;那么在不同的学习阶段我们都配置了那些东西呢,它们有什么作用,又是怎样处理业务逻辑的呢,带着这个疑问,我总结了一下自己各个学习阶段所做的项目
- 写的不对的地方,欢迎指正
NodeJs + Ajax + 前端框架 + MySQL
- 业务逻辑:前端页面发送Ajax请求到服务器端,NodeJs作为后台服务器处理请求,操作数据库后将数据返回前端页面渲染,根据返回结果在前端页面处理页面跳转
- 项目逻辑处理:
- nodejs封装了MySQL模块,用于连接MySQL,并进行操作
- nodejs模块系统,nodejs模块之间可以相互调用,自定义模块,封装操作数据库的sql语句
- http模块,用于搭建 HTTP 服务端和客户端
- express模块,相当于再次封装了http模块,用于处理请求和响应,以及路由(决定了处理请求和响应的服务器)
- Multer模块,处理文件上传
- 文件上传业务逻辑:数据库中保存二进制文件或文件上传后路径;采用保存上传路径的方式,前端发送文件上传请求,后台服务端处理请求,将文件写入资源文件夹,并将文件路径存入session,上传用户信息时,在服务端获取session中的文件路径,写入数据库
- nodejs封装了session,可存储用户数据,判断登录状态等;该模块存在一定问题,可使用sessionStorage或localStorage代替
- 判断是否为登录状态的业务逻辑:当用户登录成功后,返回成功的数据到前端页面,将用户数据存入本地缓存或页面缓存,当跳转到其他页面时,首先判断缓存中是否存在用户数据,否则跳转回登录页面
- 分页问题,使用分页查询解决,在前端页面使用点击事件获取页数和偏移量,作为参数发送请求到服务端处理
- 开发步骤:
- 分析需求,设计数据库,创建数据库
- 初始化项目,引入所需的模块,测试前后端交互
- 导入前端框架,编写前端页面
- 编写服务器端业务逻辑
- 参考
Servlet + Ajax + 前端框架 + MySQL
- 业务逻辑:前端html页面发送跨域请求,servlet处理请求,操作数据库后,将数据响应给前端进行渲染,根据返回结果在前端页面处理页面跳转
- 项目逻辑处理:
- 模型层,用于存储数据,操作对象等
- 持久层,使用jdbc操作数据
- 过滤器,配置到web.xml中,可处理跨域问题,filter能够在一个请求到达servlet之前预处理用户请求,也可以在离开servlet时处理http响应
- 监听器,配置到web.xml中,监听web服务器中某一个执行动作,并根据 其要求作出相应的响应
- Servlet,配置到web.xml中,处理请求和响应,也可以处理业务逻辑
- web.xml 初始化配置信息,设置过滤器,设置监听器等
- session和cookie,session保存在服务器端,数据保存在session中,sessionId保存在cookie中发送给客户端;再次获取session中的数据时,通过sessionId找到对应的session
- session和请求头的方式,服务器端处理请求时,判断用户是否为登录状态
8.1. session的方式,第一次登录时,将用户数据存入session,前端页面再次发送请求时,可在过滤器中拦截,判断session是否为null,否则跳转回登录页面
8.2. 请求头的方式,第一次登录时,对用户数据加密后作为请求头响应给前端,再次发送请求时会带上请求头,过滤器拦截后,获取请求头,判断是否一致,一致则放行请求 - jdbc事务,jdbc中执行事务即在数据库事务中同时执行多条sql语句,只能同时成功和同时失败
- 开发步骤:
- 分析需求,设计数据库,创建数据库
- 创建web项目,导入所需的jar包
- 编写前端页面
- 根据数据库编写实体类
- 使用jdbc编写持久层操作数据库,使用junit编写测试类
- 测试通过后,编写servlet处理请求和响应
- 编写过滤器,配置web.xml
- 部署到服务器,启动项目
- 参考
参考1参考2
结语
- 经过不同阶段的学习和项目实训,不管是使用何种技术栈进行开发,它们之间总会有一些共通的逻辑处理;这么一想,当我们学习了一门新技术之后再来进行项目开发,只需要将项目需求、业务逻辑分析清楚,开发就变得非常简单了;之后再做优化