1.数据提交(前后端通讯提交)
ajax(前后端数据交换的主流)
ajax使用:
jQuery.getJSON(“后段接口地址url”,{“username”:“root”,“pwd”,:“root”},function(data){})
实现的功能
1.用户注册
2.用户登录
3.个人文章列表
4.添加文章
5.修改文章
6.删除文章
7.所有注册用户的文章列表
8.文章详情
9.阅读量增加/展现
使用的技术
maven:使用maven来管理依赖,打包项目
mysql:使用mysql作为业务数据的存储
html:使用html来编写前端页面
tomcat:使用tomcat作为web项目部署的服务器
servlet:每个页面调用后台接口都需要使用Servlet来完成业务
session:在登陆后才可以访问新增文章接口,否则直接返回到登陆页面
Jackson:Jackson是java对象与json字符串数据进行序列化、反序列化的工具
多线程:synchronized、volatile关键字,在多线程下访问servlet共享变量,需要保证线程安全
Jackson的使用
1.引入依赖
2.使用
2.创建Servlet项目介绍
webapp:静态资源文件和配置文件
web.xml文件:整个项目的配置,每次的接口添加都需要修改它
pom.xml:Maven项目标配
2.手动创建Java源代码根路径
3.手动添加servlet的引用
搜索servlet,下载第一个jar包
4.修改配置文件
在web.xml文件中
services.RegServlet对应的就是后端的地址类型
5.创建普通类并且将它升级成Servlet后端类
3.开发步骤
pom.xml配置
- web项目 打包为war
- 引入依赖
- 使用jdk1.8版本来编 项目
数据库实体类
- 用户类,对应数据库用户表
- 文章类,对应数据库文章表,且文章图片表不做单独使用,需要配合文章来使用,所以可以不创建文章图片类,而直接再文章类中建立关联
设计数据库连接工具
- 使用DataSource作为数据库连接的创建方式
- 设计释放jdbc资源的方法
设计用户注册、登录功能
原理:需要先注册用户才能登录访问,登录后需要建立用户的session信息,用来在访问文章新增等功能判断用户是否登录。
目标:注册后在数据库建立用户,登录后创建用户session数据,并跳转到新增文章页面
用户新增文章功能
原理:在新增文字页面中,访问新增文章接口,上传文章标题、内容和图片文件
目标:用户没有登录时,跳转到用户登录页面。登录后允许访问,新增文章成功,保存数据到文章表,文章表图片表。图片文件需要上传到指定的目录下,数据库记录图片在服务器的访问地址,新增文章成功后,跳转到文章详情页面。
设计文章详情功能
原理:显示文章的信息,包括标题、具体内容,图片
目标:可以单独输入url访问,也可以从新增文章成功后跳转进入
设计文章列表功能
原理: 显示所有的文章信息 以json类型的数据返回,并展示
目标 后台需要获取数据库中的所有文章数据,并序列化为json格式 并返回给客户端浏览器显示
设计文章列表统计访问量功能
原理:统计文章列表的访问次数,当每次访问文章列表接口时,次数加1
目标:需要保证在多线程环境下访问文章列表时,设置次数的线程安全性,在访问统计访问量接口后,显示总的访问量
出现的技术难点
1.前后交互
2.登录拦截器(权限校验):
1.实现HandlerInterceptor接口,重写里面preHandle方法(用户自定义session判断方法),该方法返回一个boolean类型的值(true,false);
2.在SpringMVC的配置文件中设置拦截规则(创建一个拦截器)。
- 需要配置哪些接口需要拦截
- 哪些不需要拦截
3.在preHandler中,第一,判断session中是否有值
拦截器HandlerInterceptor
拦截器可拦截前端发过来的请求,可用于登录拦截、获取用户或者权限校验。HandlerInterceptor方法介绍:
preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了Service并返回ModelAndView,但未进行页面渲染),有机会对视图ModelAndView进行修改;
afterCompletion:在DispatcherServlet完全处理完请求后被调用,可用于清理资源等,如把线程中的本地变量删除。
在preHandler方法中return false;和return true;的区别是允不允许进入controller层,即return true是可继续请求,return false是拦截请求。
2.配置拦截器,需要在SpringMVC的配置文件里面,配置拦截规则
1.用户的统一拦截
拦截器获取用户信息,在本项目中用于在拦截器内判断用户是否登录,并获取用户信息到本地线程,并供后续Controller调用
对于springboot的理解:
它能使我们快速地就地搭建一个应用的脚手架并在其上进行项目的开发,再也不用像以前那样使用大量的xml或者注解了,使得开发者从之前繁琐的配置中解脱出来