前后端交互——后端知识点总结

  • 解决中文乱码
  • //中文乱码 
    request.setCharacterEncoding("utf-8"); 
    response.setCharacterEncoding("utf-8");
  • 设置后端给前端发送的数据格式类型
  • response.setContentType("text/json;charset=utf-8");//响应json格式的数据 
    
    response.setContentType("text/html;charset=utf-8");//响应字符串格式的数据

  • 获取前端传的参数值
  • String searchname = request.getParameter("searchname");
  • 给前端响应数据
  • response.getWriter().write("");
  • 了解jdbc操作以及使用jdbc工具类,首先要引入java操作mysql数据库的jar包
  • 常用的基本sql语句
  • select * from 表 //查询 
    insert into 表(字段,...) values(值,...) //添加 
    delete from 表 where id=1 //删除 
    update 表 set 字段=值,... where id = 1 //修改 
    select * from 表 limit 起始值,数量 //限制查询 
    select * from 表 where name like "%关键字%" //模糊查询 
    select * from 表 where 1=1 and name like "%关键字%" //万能公式、多条件综合查询 
    select * from 表 order by 字段 desc|asc //排序 desc降序,asc升序 
    select * from 表 where id in() //范围查询
  • WEB-INF目录的有限访问,不能通知前端跳转来访问其中的资源
  • 后端跳转的方式:
    • 请求转发request.getRequestDispatcher("页面地址").forward(request, response);
    • 重定性response.sendRedirect("页面地址")
  • 过滤器(在servlet处理之前,先拦截请求,起到过滤作用)
  • ​
    ​
    ​
    //URI是统一资源定位标志符 URL是以路径的方式来实现资源定位的一种方式 
    //获取URI 
    String requestURI = ((HttpServletRequest)request).getRequestURI(); 
    System.out.println(requestURI); 
    if(requestURI.contains("login") || requestURI.contains("resource")) { 
    chain.doFilter(request, response);//放行 
    }else { 
    //获取的登录状态 
    Object username = ((HttpServletRequest)request).getSession().getAttribute("username"); 
    if(username!=null) {//登录 
    chain.doFilter(request, response);//放行
    }else {//没有登录 
    //request.getRequestDispatcher("login.html").forward(request, response); 
    ((HttpServletResponse)response).sendRedirect("login.html");
    } 
    }
    
    ​

  • 服务端使用session来存取共享数据
  • request.getSession().getAttribute("名称");//从session中取数据 
    request.getSession().setAttribute("名称","值");//往session中存数据 
    request.getSession().removeAttribute("名称");//从session中删除数据
  • 单表CRUD代码实现
  • 利用java中的if分支语句来实现动态sql语句,从而到达用户综合查询
  • 分页的后端实现原理: limit (page-1)*pagesize,pagesize,考虑前端传递来的数据都是字符串,要进行算术运算,需要强转成数字,比如Integer.parseInt("8")把字符串8转化成int类型的8
  • 删除分物理删除和逻辑删除,逻辑删除可以使用数据状态标志字段来实现
  • 利用前端传递的参数来合并优化后端Servlet类的数量,同一个功能模块的不同请求可以合并在一个类中
  • 多表查询场景实现原理
    • select * from A表,B表,... where 条件
    • select * from A表 inner join B表 on 条件
      • inner join 内连接
      • left join 左连接
      • right join 右连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本季课程把开发知识拆解到项目里,让你在项目情境里学知识。这样的学习方式能让你保持兴趣、充满动力,时刻知道学的东西能用在哪、能怎么用。平时不明白的知识点,放在项目里去理解就恍然大悟了。  一、融汇贯通本视频采用了前后端分离的开发模式,前端使用Vue.js+Element UI实现了Web页面的呈现,后端使用Python 的Django REST Framework框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端的各自承担的工作。 二、贴近实战本课程为学生信息管理系统课程:Vue3 + Vite + ElementPlus + Django REST Framework项目实战 本季课程主学生信息管理系统V5.0,内容包含:Django REST framework安装和项目初始化、数据的序列化、ViewSet视图集、DefaultRouter路由类、django-filter实现过滤、rest framework实现查找、rest framework实现分页、npm的使用、使用Vite构建vue3项目、Package.json解析、ElementPlus安装和应用、vue-router实现路由、使用Vuex的store对象、后台管理系统主界面的布局、axios组件的安装和请求、axios请求的模块化、请求拦截器和响应拦截器、使用el-select实现联级下拉、使用cascader实现联级选择、vue表单的验证、实现学生信息的添加、修改和删除、实现文件的上传等等功能 本案例完整的演示了项目实现过程,虽然不复杂,但涉及的内容非常多,特别是前后端交互的时候,有诸多的坑等着你去踩,好在王老师全程代码呈现,带着大家一起填坑,大大提高学习效率的同时,也培养了大家良好的代码习惯,希望大家一起跟着王进老师学习Python开发。三、后续课程预告:Vue和Django REST Framework实现JWT登录认证 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值