Mybatis详解
1、什么是MyBatis
MyBatis原本是apache基金会的一个开源项目iBatis,2010年该项目由apache software foundation迁移到google code,并且改名为MyBatis。2013年11月迁移到Github。
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Ordinary Java Objects,普通的Java 对象,又称:实体类)为数据库中的记录。
最佳学习方式:MyBatis中文官网
我们学习的是:mybatis-3。
附:持久化与持久层
(1)什么是持久化
持久化就是将程序数据在**持久状态(数据库、磁盘文件等)和瞬时状态(内存)**间转换的过程。即:把内存中的数据保存到可永久存储的存储设备中(如数据库、磁盘文件等)。
持久化的主要应用就是:将内存中的对象存储在数据库中,或者存储在磁盘文件(XML文件等 ...
Web监听器
1、Web监听器概述
监听器(Listener),主要用于监听某个事件是否发生。一旦该事件发生,便立即去处理监听器相应方法中的内容。
Java中给我们提供了许多监听器,我们这里介绍的是仅仅是Web应用中的**Web监听器**。
由于Web监听器均在javax.servlet包中定义,因此:Web监听器又称“Servlet监听器”。
**生命周期:**监听器在服务器启动时创建,监听器被移除或服务器关闭才会被销毁。
2、Web监听器种类
Servlet规范中定义了8个Web监听器接口,可用于监听ServletContext、HttpSession和ServletRequest对象的生命周期事件,以及这些对象的属性改变事件。
2.1、对象监听器
对象监听器主要用于监听对象的创建与销毁。用于监听对象的监听器有以下三种:
(1)ServletContext监听器: 用于监听ServletContext对象的创建与销毁。
监听器接口
监听事件
javax.servlet.ServletContextListener
(1)当ServletContext对象创建时激活context ...
Filter过滤器
1、过滤器概述
过滤器(Filter)就是在源数据和目的数据之间起过滤作用的中间组件。其主要作用是:过滤请求和响应。
我们可以将一些多个(或所有)Servlet中都需要解决的问题放在过滤器中处理。如:
户请求进行统一认证
对用户的访问请求进行记录和审核(登录验证)
对用户发送的数据进行过滤或者替换
对响应内容进行压缩,减少传输容量
对请求和响应进行加解密处理
2、工作原理
过滤器的工作原理如下图所示:
当web容器接收到对一个资源的请求时,它将判断是否有过滤器与这个资源相关联。如果有,那么容器将会把这个请求先交给过滤器进行处理。此时我们便可以在过滤器中对请求进行处理(如:改变请求的内容或者重新设置请求的报头信息等)。待过滤完成后,web容器再将请求发送给目标资源。
当目标资源对请求作出响应时,容器同样会将响应先转发给过滤器。在过滤器中,我们可以对响应的内容进行转换。待过滤完成后,web容器再将响应发送给客户端。
注:
生命周期:过滤器在服务器启动时创建,在服务器关闭时被销毁。
在web应用中,我们可以部署多个过滤器,这些过滤器组成过滤器链( ...
MVC三层架构
1、什么是三层架构
三层架构是一种架构思想, 通常意义上的三层架构就是将整个业务应用划分为:
表现层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层 (Data access layer)。
表现层 :通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
业务逻辑层 :针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
数据访问层 :该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
**注:**在各种开发框架中,没有什么是加一层解决不了的事情,如果一层不行,那就再加一层。
2、什么是MVC
MVC模式是软件工程中常见的一种软件架构模式,该模式把软件系统(项目)分为**模型(Model)、视图(View)和控制器(Controller)**三个部分,并赋予各个部分不同的功能,进而实现“业务逻辑”、“数据模型”、"页面显示"之间的解耦。
目前,基于MVC模式的Web服务器主流架构,如下图所示:
(1)模型(Model)
主要负责:
...
JavaBean
1、什么是JavaBean
JavaBean(组件)是遵循一定规范的Java类,又称“实体类”。
我们一般用JavaBean来和数据库的字段做映射。即:ORM(Object-Relational Mapping,对象关系映射),参见《注解与反射》。
注:
JavaBean是一种可重用的Java组件,它可以被Servlet、JSP等Java应用程序调用,也可以可视化地被Java开发工具使用。
JavaBean是一种软件组件模型,就像控件一样,为我们提供已知的功能,我们可以轻松地重用并集成到应用程序中。
对软件开发人员来说,JavaBean带来的最大的优点是充分提高了代码的可重用性。
JavaBean的种类按照功能可以划分为可视化和不可视化两类。
可视化的JavaBean是拥有GUI图形用户界面的,对最终用户是可见的。
不可视化的JavaBean不要求继承,它更多的被使用在JSP中,通常情况下用来封装业务逻辑、数据分页逻辑、数据库操作和事物逻辑等,这样可以实现业务逻辑和前台程序的分离,提高了代码的可读性和易维护性,使系统更健壮和灵活。
实际项目中,我们一般习惯将Ja ...
JSP详解
1、什么是JSP
JSP(Java Server Pages):java服务器页面。JSP和Servlet一样,也是Sun公司主导创建的一种动态web技术。
JSP有一个最大的特点:写JSP就像写HTML。
JSP与HTML的区别:
HTML只给用户提供静态的数据。
JSP页面中可以嵌入Java代码,为用户提供动态数据。
2、JSP运行原理(重点)
JSP文件的运行原理如下图所示:
2.1、JSP文件的运行过程:
客户端(浏览器)访问JSP页面,如http://localhost:8080/Prj_test/ch02/HelloJSP.jsp。
服务器找到相应的JSP页面(xxx.jsp文件)。
服务器将JSP文件转换成Servlet文件(xxx_jsp.java文件)。
服务器将Servlet文件编译为class文件(xxx_jsp.class文件)。
服务器将class文件加载到内存并执行。
服务器将class文件执行后生成HTML代码发送给客户端,客户端(浏览器)根据响应的HTML代码进行显示。
2.2、JSP页面的生命周期
我们可以把**JSP页面的生命周期分 ...
会话跟踪技术:Cookie和Session详解
1、会话
会话指的是一个客户端(浏览器)与Web服务器之间连续发生一系列请求和响应的过程。当用户打开一个浏览器,访问了一系列网页后,再关闭浏览器的这个过程就是一次会话。
注:
当用户打开浏览器,访问web服务器的资源时,会话建立;直到有一方断开连接,会话结束。
一次会话中可以包含多次请求和响应。
2、会话跟踪的两种技术
由于HTTP协议是无状态协议,服务器仅从网络连接上无法获取客户端(浏览器)信息。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,此时,服务器就不知道是否还与之前的客户端(浏览器)会话了。这就意味着服务器无法从连接上跟踪会话。
为了解决上述问题,在Servlet技术中为我们提供了两个用于保存会话数据的对象,分别是Cookie和Session。
2.1、Cookie(客户端会话跟踪技术)
2.1.1、什么是Cookie
Cookie是一种客户端会话跟踪技术。即:将数据保存到客户端,以后每次请求都携带Cookie数据进行访问。
Cookie是一种记录客户端状态的机制。
Cookie是在服务器端创建的,然后由服务器端发送给客户端,客户端以键 ...
Servlet详解
1、Servlet简介
Servlet是Sun公司开发动态Web的一门技术。Sun公司在这些API中提供了一个Servlet接口,如果你想开发一个Servlet程序只需要完成如下两个步骤:
编写一个Java类实现Servlet接口。
把开发好的Java类部署到Web服务器中。
我们把实现了Servlet接口的Java程序叫做Servlet。
注:
一个Servlet就是一个实现了Servlet接口的Java类。
一个Servlet对应一个URL。
2、父项目与子项目
关于父子项目的理解:
(1)父项目的pom.xml配置文件中存在<modules>……</modules>标签,记录了子项目的信息:
123<modules> <module>servlet-01</module></modules>
(2)相对应的,子项目(即:Module模块)中存在<parent>……</parent>标签,记录了父项目的信息:
12345<parent> <artifactId& ...
Maven详解
1、Maven 简介
Maven 是一个项目管理工具,可以对 Java 项目进行自动化的构建和依赖管理。在JavaWeb开发中,使用Maven 可以极大地方便我们导入jar包。Maven的高级之处在于:它会帮助我们导入我们所需jar包所依赖的所有jar包。
**Maven的核心思想是:约定大于配置。**即:Maven会规定好我们该如何去编写我们的Java代码(如:项目的目录结构等),我们必须要按照这个规范来,不要去违反。
2、下载安装Maven
在官网:https://maven.apache.org 下载Maven安装包apache-maven-3.8.6-bin.zip。
将apache-maven-3.8.6-bin.zip解压的安装目录下即可直接使用。
3、Maven目录分析
4、配置Maven环境变量
在“高级系统设置”中配置“环境变量”的“系统变量中”进行如下配置:
环境变量
地址
新建系统变量:M2_HOME
maven安装目录下bin目录
新建系统变量:MAVEN_HOME
maven安装目录
修改环境变量: path
%MAVEN_H ...
Http协议详解
1、什么是Http协议
HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一个简单的请求-响应协议。它通常运行在TCP之上,默认使用80端口。
它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
注:
**文本:**如:html、字符串等。
**超文本:**如:图片、音乐、视频、定位、地图等。
附:HTTPS
HTTPS (Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,默认使用443端口。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
2、Http的三个时代
2.1、Http1.0时代
Http/1.0协议:客户端与Web服务器连接后,只能获得一个Web资源。
2.2、Http1.1时代
Http/1.1协议:客户端与Web服务器连接后,可以获得多个Web资源。
2.3、Http2.0时代
Http/2.0协议:是下一代HTTP协议,正在逐渐覆盖市场。
3、Http工作流程
一次HTTP操作称为一 ...