JavaWeb:后端部分
maven
maven概述及安装
idea集成maven
配置maven环境
创建maven项目
导入maven项目
依赖管理
依赖配置
依赖传递
依赖范围
生命周期
SpringBootWeb入门
spring&springboot
springbootweb快速入门
HTTP协议
概述
请求协议
响应协议
协议解析
Tomcat
介绍
基本使用
入门程序解析(内嵌tomcat)
请求响应
概述
请求
Postman
简单参数&实体参数
数组,集合参数
日期参数&json参数
路径参数
总结
响应
@Responsebody
统一响应结果
package com.itheima.pojo;
/**
* 统一响应结果封装类
*/
public class Result {
private Integer code ;//1 成功 , 0 失败
private String msg; //提示信息
private Object data; //数据 date
public Result() {
}
public Result(Integer code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public static Result success(Object data){
return new Result(1, "success", data);
}
public static Result success(){
return new Result(1, "success", null);
}
public static Result error(String msg){
return new Result(0, msg, null);
}
@Override
public String toString() {
return "Result{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
分层解耦
三层架构
分层解耦
IOC&DI入门
IOC详解
DI详解
Mybatis
入门
快速入门程序
上面的接口代码在运行时,会自动生成该接口的实现类对象,并且将该对象交给IOC容器管理。
配置SQL提示
JDBC
数据库连接池
lombok工具包
基础操作
删除
新增
更新
查询
注:如果使用第三个方案需要严格遵守数据库中的字段名是下划线分隔,类中的属性名是驼峰命名法。
注意:#{}是不能出现在引号内的!所以接口方法方案一用${}来替换。
XML映射文件
resultType:单条记录所封装的类型(图中查询出来的单条记录为Emp对象类型)
动态SQL
if
注:自动去除子句开头的and或者or是只去除多余的,并不是全都去掉!
如果字段是String类型除了考虑null的情况还要考虑该字段是否为空字符串的情况!!
foreach
sql&include
补充细节
文件上传
简介
上传上来的文件是临时文件,文件上传这次请求响应完之后临时文件会自动删除。
本地存储
阿里云OSS
配置文件
参数配置化
yml配置文件
@ConfigurationProperties
如果需要注入的属性只有一两个且只用注入一次则使用@Value即可;如果要注入的属性非常的多且还想做到复用,则可以先定义一个bean对象,再用@ConfigurationProperties批量得把属性注入到bean对象的属性当中,在其他类当中要是想获取到注入到bean对象的属性,就可以直接注入bean对象再调用getXXX方法获取到属性值。
登录校验
概述
会话技术
看会话数量一般是看浏览器数量,每个会话内的多次请求都是独立的(http协议)
JWT令牌
介绍
生成和校验
登陆后下发令牌
Filter过滤器
快速入门
详解
登录校验过滤器
<!--fastJSON-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
@Slf4j
@WebFilter(urlPatterns = "/*")
public class LoginCheckFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
//1.获取请求url。
String url = req.getRequestURL().toString();
log.info("请求的url: {}",url);
//2.判断请求url中是否包含login,如果包含,说明是登录操作,放行。
if(url.contains("login")){
log.info("登录操作, 放行...");
chain.doFilter(request,response);
return;
}
//3.获取请求头中的令牌(token)。
String jwt = req.getHeader("token");
//4.判断令牌是否存在,如果不存在,返回错误结果(未登录)。
if(!StringUtils.hasLength(jwt)){
log.info("请求头token为空,返回未登录的信息");
Result error = Result.error("NOT_LOGIN");
//手动转换 对象--json --------> 阿里巴巴fastJSON
String notLogin = JSONObject.toJSONString(error);
resp.getWriter().write(notLogin);
return;
}
//5.解析token,如果解析失败,返回错误结果(未登录)。
try {
JwtUtils.parseJWT(jwt);
} catch (Exception e) {//jwt解析失败
e.printStackTrace();
log.info("解析令牌失败, 返回未登录错误信息");
Result error = Result.error("NOT_LOGIN");
//手动转换 对象--json --------> 阿里巴巴fastJSON
String notLogin = JSONObject.toJSONString(error);
resp.getWriter().write(notLogin);
return;
}
//6.放行。
log.info("令牌合法, 放行");
chain.doFilter(request, response);
}
Interceptor拦截器
快速入门
详解(拦截路径,执行流程)
异常处理
注释包含@ResponseBody,就会将方法的返回值转化成JSON格式返回给前端。
事务管理
spring事务管理
rollbackFor属性
propagation属性
AOP
基础
快速入门
核心概念
一旦进行了AOP程序的开发,执行的不再是一开始的目标对象,而是基于目标对象所生成的代理对象。调用的方法也是代理对象内的方法了。
进阶
通知类型
通知顺序
切入点表达式【execution和@annotation】
需要先自己创建一个注解类再使用这个注解去注解在方法/类上再作为切点表达式
连接点
Springboot原理篇
配置优先级
Bean管理
bean的获取
bean作用域
第三方bean
Springboot原理
起步依赖
自动配置
概述
方案
原理分析-->源码跟踪
原理分析-->@Conditional
自定义starter
Maven高级
分模块设计与开发
继承与聚合
继承关系实现
版本锁定
聚合实现
私服
介绍
资源的上传与下载
更多推荐
















































































































































































































































所有评论(0)