03_Servlet
Servlet是JavaWeb最为核心的内容,它是Java提供的一门动态web资源开发技术。 Servlet 使用Servlet就可以实现,根据不同的登录用户在页面上动态显示不同内容 Servlet是JavaEE规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet Servlet快速入门1、导入Servlet依赖坐标 12345678910<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <!-- provided指的是在编译和测试过程中有效,最后生成的war包时不会加入 因为Tomcat的lib目录中已经有servlet-api这个jar包,如果在生成war包的时候生效就会和Tomcat中的jar包冲突,导致报错 ...
HTTP&Tomcat
今天记录一下HTTP协议和一种目前使用最广泛的轻量级web服务器——Tomcat! JavaWeb什么是Web Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。 JavaWebB/S架构Browser/Server,浏览器/服务器...
02_Mybatis练习
前面记录了mybatis,它是一种简化jdbc开发操作关系型数据库的持久层框架。下面我们用mybatis进行一些简单的业务来操作mysql数据库。基础的操作和代码我就不完整的展示了,我就记录一下比较容易出错的地方和需要注意的细节了。 Mybatis CRUD查询全部selectAll操作很简单,但是我们发现有些数据没有被封装成功,仍然是null: 这是为什么呢,原因还要从mapper代理开发的过程来说起。因为在代理开发中通过接口代理对象调用接口中的函数,再在相应的sql映射文件中找sql语句: 1select * from tb_brand; 找到的sql语句没问题,而它在编译的时候是变成了: 1select id,brand_name,company_name,ordered,description,status from...
02_Mybatis
Mybatis是一款很重要的开发框架! MybatisMybatis概述 MyBatis 是一款优秀的持久层框架,用于简化 JDBC...
Maven
Maven是专门用于管理和构建Java项目的工具。 Maven他的主要功能有: 提供一套标准化的项目结构: 所有的IDE使用Maven构建的项目完全一样,IDE创建的Maven项目可以通用。如下图就是Maven构建的项目结构: 标准化的构建流程: 代码需要进行编译、测试、打包、发布,这些操作如果需要反复进行就显得特别麻烦,而Maven提供了一套简单的命令来完成项目构建。 依赖管理: 依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件)。如之前我们项目中需要使用JDBC和Druid的话,就需要去网上下载对应的依赖包,复制到项目中,还要将jar包加入工作环境这一系列的操作。 而Maven使用标准的 坐标 配置来管理各种依赖,只需要简单的配置就可以完成依赖管理。 Maven简介Maven模型 紫色框框起来的部分,他就是用来完成标准化构建流程 。如我们需要编译,Maven提供了一个编译插件供我们使用,我们需要打包,Maven就提供了一个打包插件提供我们使用等。 ...
JDBC
现在企业早就不使用这种繁琐的技术了,但是学过了JDBC才能更好的理解后面的开发框架。 JDBC JDBC是一款使用 Java语言赖操作关系型数据库的一套API;它为不同的关系型数据库提供了一套标准的API接口。 JDBC快速入门(1)导入驱动包:操作哪个关系型数据库就需要导入该数据库的驱动包。将mysql驱动包放在模块的lib目录下,并添加为库文件; mysql驱动jar包下载地址:https://dev.mysql.com/downloads/connector/j/ (2)代码步骤: 12345678910111213141516171819202122public class JDBCDemo { public static void main(String[] args) throws ClassNotFoundException, SQLException { // 注册驱动(可省略) ...
Android平台JNI开发保姆级教程
最近项目中在Android移动端需要用到音视频处理的部分,这离不开FFmpeg工具。但是FFmpeg源码是C语言,想要在Android java中调用FFmpeg工具,这就需要Android NDK登场了。 Android平台JNI开发保姆级教程前提条件 FFmpeg源码:可以在官网下载,目前我是用的是最新版的6.0版本(只下载源代码即可,不要下载已经编译好的在不同平台可以运行的安装包)。 Android NDK:可以在官网下载,但更推荐在Android Studio中的Setting中可以直接下载NDK对应版本,我这里使用的是22.1.7171670版本的NDK(建议不要使用太新的NDK,否则可能会出现一些BUG)。 安装msys2:由于我是在Windows下对FFmpeg源码进行交叉编译,所以需要一个类Unix环境;或者你可以直接使用linux操作系统。 ...
OpenCV特征检测
前段时间毕设在研究Android开发,以及对第三方库的JNI编程和交叉编译,本想把FFmpeg和JNI先整理成博客发出来,奈何实在太懒了,可能还要过一段时间才能整理完了。正好这几天项目里用到了OpenCV里Detection的一些算法,就去学习了一下。 [OpenCV]Canny边缘检测、HoughLinesP直线检测边缘检测Edge detection 边缘检测算法是指利用灰度值的不连续性质,以灰度突变为基础分割出目标区域。大概原理是计算图像中每个像素点的梯度值和梯度方向。使用边缘检测算子计算图像在x和y方向上的一阶导数,然后计算每个像素点的梯度幅值和梯度方向;再利用NMS和阈值检测将边缘点标记和连接。 最后的输出一定是一个二值图像,其中白色像素表示边缘,黑色像素表示非边缘。 Canny边缘检测算法的优点是能够检测到比较细的边缘,且对噪声比较鲁棒。 1234567Canny算法参数: InputArray image, //输入图像,要求为灰度图 OutputArray edges, //canny检测后的输出图像 ...