这篇文章源于我在学习java的时候在B站上看到的星盟安全团队的视频,就做做笔记,记录一下
java简单介绍
什么是java
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。
Jva技术具有卓越的通用性、高效性、平台移植性和安全性(以牺牲执行效率为代价换取了高安全性),广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
参考链接:Java 虚拟机:什么是 Java-腾讯云开发者社区-腾讯云 官网地址:Java SE | Oracle Technology Network | Oracle
JDK和JRE
JDK(Java Development Toolkit)
java开发工具包,包括了java运行环境(JRE,Java Runtime Environment)
、Java工具(javac/java/jdb等)
和java基础的类库(java API等)
最主流的JDK是Oracle公司发布的JDK,除了Oracle之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK都是为了在某些方面得到一些提高,以适应自己的需求。
JRE(Java Runtime Environment)
JRE是java的运行环境,包含了java虚拟机
,java基础类库
。是使用java语言编写的程序运行所需要的软件环境。
Java SE
Java对象和类
类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的个体,因而也称实例(Instance)。类和对象就如同概念和实物之间的关系一样,类就好比是一个模板,而对象就是该模板下的一个实例。 在面向对象中,万物皆为对象对象本质就是:属性+方法
1.2 Java SE (面向对象篇 —— 类的基本结构) · 语雀
Java 修饰符
用于定义访问权限修饰符的关键字
private、protected、public
用于定义类,函数,变量修饰符的关键字
abstract、final、static、synchronized
用于定义类与类之间关系的关键字
extends、implements
用于定义建立实例及引用实例,判断实例的关键字
其中super代表对象的应用,只能在继承条件才可以使用,Java中super详解_java super-CSDN博客
new、this、super、instanceof
用于处理异常的关键字
try、catch、finally、throw、throws
用于包的关键字
package、import
其他修饰符关键字
native、strictfp、transient、volatile、assert
transient:一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问
Java Web三大组件
1、Servlet
Servlet
是JavaWeb的三大组件之一,它属于动态资源,Servlet的作用是处理请求,服务器会把接收到的请求给Servlet处理,在Servlet中需要:
接收请求数据 处理请求 完成响应
2、Filter
它会在一组资源(jsp、Servlet、css、html等等)的前面执行
它可以让请求得到目标资源,也可以不让请求得到,过滤器有拦截请求的能力
3、Listener
监听观察某个时间(程序)的发生情况,当被监听的事件真的发生了的时候,事件发生者(事件源)就会给注册该事件的监听者(监听器)发送消息,告诉监听发这某些信息,同时监听者也可以获得一份事件对象,根据这个对象可以获得相关属性和执行操作。
JSP
1、什么是JSP
jsp全名为Java Server Pages,其根本是一个简化的Servlet设计,它实现了在java当中使用HTML标签。JSP是一种动态网页技术标准,也是JAVAEE的标准。JSP与Servlet一样,是在服务器端执行的。
Java框架
MVC模式
(1)View层:View指试图部分,这一部分是展示给用户实际进行交互的,通常使用JSP和HTML进行构建
(2)Controller层:Controller指控制部分,一般是对View层提交的请求为其设置对应的Servlet进行特定功能的处理,这里进行特定功能的处理一般是在写Model中的业务处理层中的。Controller一般只是在Web应用中充当一个中介者的作用
(3)Model层:Model指模型部分,一般在应用中Model层包括业务处理层和数据访问层。数据访问层主要是对数据库的一些操作的封装。业务处理层应用JavaBean构建,JavaBean主要是用作将从View层获取的数据和数据库的数据进行桥接。除却JavaBean以外,若想构建分布式应用系统,可以应用EJB组件进行业务逻辑层的构建。
SSH框架
https://www.cnblogs.com/xialinxin/p/3441725.html
Struts负责Web层:
ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward到对应的网页,在Struts-config.xml中定义了<action-mapping>,ActionServlet会加载进来。
Spring负责业务层管理,即Service:
Service为Action提供同一的调用接口,封装持久层的DAO,并集成Hibernate,Spring可对JavaBean和事物进行同一管理。
Hibernate负责持久层,完成数据库的CRUD操作。
SSM框架
SSM框架是Spring MVC,Spring和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为View层,Controller层,Service层,DAO层四层,使用Spring MVC负责请求的转发和视图管理,Spring:实现业务对象管理,Mybatis作为数据对象的持久化引擎。
1、客户端发送请求到DispacherServlet(分发器) 2、由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller 3、Controller调用Service业务逻辑层处理后返回结果
浅谈SSM与SSH框架
https://juejin.cn/post/6844903557859475469
Java Sec
https://github.com/JoyChou93/java-sec-code 前言 · 攻击Java Web应用-[Java Web安全] https://xianbei.notion.site/xianbei/Hello-Java-Sec-f9f9310dda3d46bbb22cbc382160a03a
Maven项目
1、Maven是什么?
maven是一个Java项目的管理和构建工具:
Maven使用pom.xml定义项目内容,并使用预设的项目结构 在Maven中声明一个依赖项可以自动下载并导入classpath Maven使用roupId,artifactId和version唯一定义一个依赖
2、创建一个maven项目
maven的下载与安装教程(超详细)_maven安装-CSDN博客
IDEA中创建maven项目详细步骤,很清晰_idea创建一个maven项目-CSDN博客
Memo插件
IDEA里面的Memo插件,java代码静态安全审计的插件,在你编写程序的时候,检查一些潜在的安全风险。