【032-安全开发篇】JavaEE应用&Servlet路由技术&JDBC&Mybatis数据库&生命周期

思维导图

知识点:

1、JavaEE-HTTP-Servlet技术

2、JavaEE-数据库-JDBC&Mybatis

章节点

1、PHP

2、JS
↑上面两者快速看了一遍,有机会补充,PHP近几年的使用率持续下滑,我就不写笔记了,然后JS比较简单(后续补充)

3、Java:

功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方库使用等.

框架库:MyBatis,SpringMVC,SpringBoot,Shiro,Log4j,FastJson等

技术:Servlet,Listen,Filter,Interceptor,JWT,AOP,待补充

安全:SQL注入,RCE执行,反序列化,脆弱验证,未授权访问,待补充

安全:原生开发安全,第三方框架安全,第三方库安全等,待补充
JAVA开发发展(2023)

演示案例

复制代码
JavaEE-HTTP-Servlet&路由&周期
JavaEE-数据库-JDBC&Mybatis&库

JavaEE-HTTP-Servlet&路由&周期

参考https://blog.csdn.net/qq_52173163/article/details/121110753

xiaodi老师IDE的配置,重点是模板要一样,JDKHE和模板可以比xiaodi的新。

版本选择8,依赖项没有规定

认识目录:.idea是自带的不用管他,最重要的.mvn和.src

其中src的java是放主程序的(java下面的组是上面配置的东西),webapp

安装的插件推荐

  1. 解释

    Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。本章内容详细讲解了web开发的相关内容以及servlet相关内容的配置使用,是JAVAEE开发的重中之重。

  2. 创建和使用Servlet

  • 创建一个类继承HttpServlet
  • web.xml配置Servlet路由
  • WebServlet配置Servlet路由
  • 写入内置方法(init service destroy doget dopost)

3、Servlet生命周期

见图

4、处理接受和回显

  • HttpServletRequest是ServletRequest的子接口

    • getParameter(name) --- String 通过name获得值
    • getParameterValues --- String[ ] 通过name获得多值
  • HttpServletResponse是ServletResponse的子接口

    • setCharacterEncoding() 设置编码格式.
    • setContentType() 设置解析语言
    • getWriter() 获得一个PrintWriter字符输出流输出数据
    • PrintWriter 接受符合类型数据

JavaEE-数据库-JDBC&Mybatis&库

  • 原生态数据库开发:JDBC
    参考:https://www.jianshu.com/p/ed1a59750127
    JDBC(Java Database connectivity): 由java提供,用于访问数据库的统一API接口规范.数据库驱动: 由各个数据库厂商提供,用于访问数据库的jar包(JDBC的具体实现),遵循JDBC接口,以便java程序员使用!
  1. 下载jar
    https://mvnrepository.com/
  2. 引用封装jar
    创建lib目录,复制导入后,添加为库
  3. 注册数据库驱动
    Class.forName("com.mysql.jdbc.Driver");
  4. 建立数据库连接
    String url ="jdbc:mysql://localhost:3306/demo01";
    Connection connection=DriverManager.getConnection(url,"x","x");
  5. 创建Statement执行SQL
    Statement statement= connection.createStatement();
    ResultSet resultSet = statement.executeQuery(sql);
  6. 结果ResultSet进行提取
    while (resultSet.next()){
    int id = resultSet.getInt("id");
    String page_title = resultSet.getString("page_title");
    ...
    }

安全修复SQL注入:预编译(所以JAVA不容易有SQL注入)

原理:提前编译好执行逻辑,你注入的语句不会改变原有逻辑!

  • 框架数据库开发:Mybatis
    Mybatis是一款优秀的持久层框架,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程,减少了代码的冗余,减少程序员的操作。

个人补充:JAVA

如果你也下载了小迪的源码后想要复现,这几点对你有用

在尝试null的时候,发现网页的小目录可以从注释配置和XML配置中进行

  • 注释配置:另外是在这里IndexServlet这,你现在写http://localhost:8080/ServletDemo_war/a有效,如果注释掉则会变成404.
  • XML配置:在web.xml中写入这个,看到最下面的/index,这时你在http://localhost:8080/ServletDemo_war后添加/index才有效
    tips:如果想要导入其他数据库或者模块,得新建个lib,然后放入,最后添加为库。

碎碎念

  • java教程:https://www.runoob.com/java/java-tutorial.html不过如果有C++或者PHP等语言基础,我觉得也不用另外学了。可能各位同学在学习Java的时候会很晕,但是JAVA语法其实很简单,觉得很晕的原因是调用了太多方法,这些方法都有手册和文档,很牛的程序员也无法记住,初学者跟着写就没错了
相关推荐
jixinghuifu1 小时前
理性权衡:手机系统更新,别盲目也别抗拒
人工智能·安全·智能手机
guoji77882 小时前
安全与对齐的深层博弈:Gemini 3.1 Pro 安全护栏与对抗测试深度拆解
人工智能·安全
二进制person3 小时前
JavaEE进阶 --Spring Framework、Spring Boot和Spring Web MVC(2)
spring boot·spring·java-ee
亚历克斯神3 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos
雷帝木木3 小时前
Flutter 三方库 hashids2 基于鸿蒙安全内核的深度隐匿映射适配:数字指纹泄露防御层、生成短小精悍唯一不可逆加盐哈希,护航全链路请求 URL 隐私-适配鸿蒙 HarmonyOS ohos
安全·flutter·harmonyos
云祺vinchin3 小时前
解读“十五五”热词,容灾备份正成为国家安全基石
安全·网络安全·数据安全·十五五·容灾备份体系
小陈工4 小时前
2026年3月28日技术资讯洞察:5G-A边缘计算落地、低延迟AI推理革命与工业智造新范式
开发语言·人工智能·后端·python·5g·安全·边缘计算
聊点儿技术5 小时前
利用IP归属地查询识别异地登录风险:企业账号安全的技术探索
数据库·tcp/ip·安全
风.foxwho7 小时前
jenkins使用 ED25519密钥 拉取Git 代码 配置
git·servlet·jenkins
xixixi777777 小时前
安全嵌入全链路:从模型训练到智能体交互,通信网络是AI安全的“地基”
人工智能·安全·ai·多模态·数据·通信·合规