java
文章平均质量分 88
来日浅谈
天下古今之庸人,皆以一惰字致败。
天下古今之才人,皆以一傲字致败。
展开
-
【java】JDK动态代理实现原理
1. JDK动态代理的简单实现首先我们写个简单的代理实现:package com.siyi.proxypattern;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class JDKProxy { public static void main(String[] args) { Sub原创 2021-02-02 02:20:13 · 316 阅读 · 0 评论 -
【Ajax】Ajax请求中的跨域问题
【Ajax】Ajax请求中的跨域问题1. 为什么有跨域问题2. 解决跨域问题的方案3. 方法一:JSONP方式3.1 实现原理3.2 实现流程4. 方法二:CORS方式4.1 什么是cors4.2 cors原理4.2.1 简单请求4.2.2 特殊请求4.3 实现流程5. 方法三:Nginx反向代理跨域:浏览器对于javascript的同源策略的限制 。以下情况都属于跨域:跨域原因说明示例域名不同www.jd.com 与 www.taobao.com域名相同,端口不同www原创 2020-07-27 23:37:02 · 771 阅读 · 0 评论 -
【java】理解SPI机制
【java】SPI机制1. 什么是SPI机制2. 使用场景3. 示例4. 源码分析5. 总结5.1 优点5.2 缺点1. 什么是SPI机制SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。整体机制图如下:Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。系统设计的各个抽象,往往有很多不同的实现方案,在面向的对原创 2020-05-09 11:04:06 · 358 阅读 · 0 评论 -
【java】设置tomcat将绝对路径替换成相对路径
【java】设置tomcat将绝对路径替换成相对路径之前写项目时遇到一个问题:上传图片后,数据库中我保存的是相对路径。但是我需要读取图片时必须通过绝对路径才能显示图片。例如:数据库中保存的图片路径是"/upload/123.jpg" ,而实际上我们需要的是“/home/zcx/image/upload/123.jpg”。我们可以通过修改tomcat中的server.xml文件使程序运行时,将所有“/upload/”当作““/home/zcx/image/upload/”方法1打开tomcat原创 2020-05-08 18:35:01 · 814 阅读 · 0 评论 -
【java】通过java实现发送短信
【java】通过java实现发送短信我是通过阿里云-云市场中随便找的一家店。地址如下:https://market.aliyun.com/products/?spm=5176.730006-56956004-56928004-cmapi022659.zobpicc3q.5.3cde42fdOopWyT&keywords=%E7%9F%AD%E4%BF%A1随便选家店,其实都差不多。我...原创 2020-03-27 15:16:30 · 404 阅读 · 0 评论 -
【java】java实现将控制台的内容写入到文件中
【java】java实现将控制台的内容写入到文件中package com.siyi;import java.io.*;public class Test3 { public static void main(String[] args) throws IOException { File f=new File("out.txt"); f.crea...原创 2020-03-27 14:47:11 · 2721 阅读 · 0 评论 -
【java】Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()Z is abstract问题解决
Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()Z is abstract问题解决今天第一次进行ssm整合,结果一来就给我报了这么个让人自闭的错误 ,一直想不通,疯狂自闭。java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewPr...原创 2020-03-26 19:16:06 · 477 阅读 · 1 评论 -
【Spring】Spring 中的 JdbcTemplate
【Spring】Spring 中的 JdbcTemplate1. 配置数据源1.1 配置c3p0数据源1.2 配置DBCP数据源1.3 配置spring 内置数据源2. 将数据库连接的信息配置到属性文件中3. JdbcTemplate 的CRUD操作3.1 增3.2 删3.3 改3.4 查4. 在DAO中使用JdbcTemplate5. JdbcTemplate的基本方法1. 配置数据源1.1...原创 2020-03-23 10:39:54 · 214 阅读 · 0 评论 -
【java】动态代理常用的有两种方式
【java】动态代理常用的有两种方式1. 使用 JDK 官方的 Proxy 类创建代理对象2. 使用 cglib 的 Enhancer 类创建代理对象动态代理:特点:字节码随用随创建,随用随加载作用:不修改源码的基础上对方法增强分类:基于接口的动态代理基于子类的动态代理1. 使用 JDK 官方的 Proxy 类创建代理对象基于接口的动态代理涉及的类:Proxy提供...原创 2020-03-22 23:42:28 · 317 阅读 · 0 评论 -
【Maven】maven项目的三种打包方式jar,pom,war
【Maven】maven项目的三种打包方式jar,pom,warMaven项目的打包类型有三种分别是:pom、jar、war。jar:默认的打包方式,打包成jar用作jar包使用。打包成jar用作jar包使用。war:将会打包成war,发布在服务器上,如网站或服务。一般是java web项目打包。pom:用在父级工程或聚合工程中,用来做jar包的版本控制,必须指明这个聚合工程的打包...原创 2020-03-14 23:21:30 · 2294 阅读 · 0 评论 -
【MyBatis】实现自定义mybatis
【MyBatis】实现自定义mybatisIUserDaoUserSelectConfigurationMapperResourcesDefaultSqlSessionDefaultSqlSessionFactoryMapperProxySqlSessionSqlSessionFactorySqlSessionFactoryBuilderDataSourceUtilExecutorXMLConfi...原创 2020-03-13 23:33:48 · 398 阅读 · 0 评论 -
【java】java实体类为什么要实现Serializable接口
【java】java实体类为什么要实现Serializable接口1. 什么是Serializable接口2. 什么是序列化3. 为什么要序列化对象4. 什么情况下需要序列化5. 为什么要定义serialversionUID变量最近看了看大佬写的代码发现,在实体类中大佬实现了Serializable接口。老实说:这个结果我以前貌似学过,但是一直没用过,所以看着一脸懵逼。但是大佬总不可能乱写啊...原创 2020-03-12 16:27:41 · 5772 阅读 · 7 评论 -
【java工具类】发邮件工具类
【java工具类】发邮件工具类import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties;/** * 发邮件工具类 */public final class MailUtils {...原创 2020-03-09 17:30:37 · 229 阅读 · 0 评论 -
【java工具类】UUID随机字符串工具类
【java工具类】UUID随机字符串工具类import java.util.UUID;/** * 产生UUID随机字符串工具类 */public final class UuidUtil { private UuidUtil(){} public static String getUuid(){ return UUID.randomUUID().toString().repla...原创 2020-03-09 17:25:56 · 293 阅读 · 0 评论 -
【java工具类】将明文密码转成MD5密码
【java工具类】将明文密码转成MD5密码import java.security.MessageDigest;/** * 写一个MD5算法,运行结果与MySQL的md5()函数相同 * 将明文密码转成MD5密码 * 123456->e10adc3949ba59abbe56e057f20f883e */public final class Md5Util { private...原创 2020-03-09 17:24:32 · 1264 阅读 · 0 评论 -
【抽取servlet共性】实现高内聚提高开发效率
【抽取servlet共性】实现高内聚提高开发效率平常我们写Servlet时总是一个功能一个Servlet,然后发现自己写的Servlet文件一大堆。就比如登录,注册,退出,验证等等。但是我们仔细分析登录,注册,退出,验证等等好像都是和用户有关的。那么我们能不能将与用户有关的写一个Servlet,与货物有关的写一个Servet呢?再仔细想,平常我们写Java项目时总是采用三层架构模式,那么能...原创 2020-03-06 17:12:59 · 201 阅读 · 0 评论 -
【java web 项目设置项目默认打开页面】
【java web 项目设置项目默认打开页面】一般情况项目默认打开页面是index.html,index.htm,index.jsp,default.html,default,default.jsp。如果我们需要修改项目默认打开页面得话,我们就需要修改web.xml文件。在javaweb项目中的web\WEB-INF文件夹下有一个xml文件,如果没有则需要自己创建一个,一般命名为web.xm...原创 2020-02-26 18:28:20 · 1121 阅读 · 0 评论 -
【java】案例:通过redis和mysql在页面加载完成时加载省份信息
【java】案例:通过redis和mysql在页面加载完成时加载省份信息1. index.html2. 配置文件2.1 druid.properties2.2 jedis.properties3. Java文件3.1 ProvinceDaoImpl.java3.2 Province.java3.3 JedisPoolUtils.java3.4 ProvinceServiceImpl.java3.5...原创 2020-02-09 20:41:03 · 326 阅读 · 0 评论 -
【java】Jedis的基本使用
【java】Jedis的基本使用1. Jedis的快速入门2. Jedis操作各种redis中的数据结构2.1 字符串类型 string2.2 哈希类型 hash : map格式2.3 列表类型 list : linkedlist格式。支持重复元素2.4 集合类型 set : 不允许重复元素2.5 有序集合类型 sortedset:不允许重复元素,且元素有顺序3. jedis连接池: Jedis...原创 2020-02-09 01:21:15 · 480 阅读 · 0 评论 -
【java】案例 --- 通过JSON数据和Ajax技术实现校验用户名是否存在
【java】案例 --- 通过JSON数据和Ajax技术实现校验用户名是否存在regist.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>注册页面</title> <script src=...原创 2020-01-31 21:23:51 · 398 阅读 · 1 评论 -
【JSON】JSON概述,JSON与XML的异同,JSON语法,JSON与Java的相互转换
【JSON】JSON概述,JSON与XML的异同,JSON语法,JSON与Java的相互转换1. 什么是JSON?2. 与XML的异同3. 为什么使用JSON4. JSON语法4.1 基本规则4.2 获取数据5. JSON数据和Java对象的相互转换5.1 Java对象转换JSON5.2 JSON对象转换Java1. 什么是JSON?JSON(JavaScript Object Notatio...原创 2020-01-31 21:20:15 · 2165 阅读 · 0 评论 -
【java】Listener --- 监听器
【java】Listener --- 监听器1. 什么是Listener2. 监听器的种类3. 监听ServletContext对象的创建和销毁4. 例子1. 什么是Listener监听器就是监听某个对象的的状态变化的组件监听器的相关概念:事件源:被监听的对象包括三个域对象 request session servletContext监听器:监听事件源对象,事件源对象的状态的...原创 2020-01-17 21:35:16 · 212 阅读 · 0 评论 -
【java】Filter --- 过滤器
【java】Filter --- 过滤器1. 什么是Filter2. Filter的功能3. Filter的种类4. Filter的简单使用4.1 使用注解方式4.2 使用web.xml配置文件5. Filter的细节5.1 过滤器执行流程5.2 过滤器生命周期方法5.3 过滤器配置详解6. Filter链7. Filter案例1:登录验证8. Filter案例2:敏感词汇过滤(通过代理模式)1...原创 2020-01-14 16:33:09 · 328 阅读 · 0 评论 -
【java】案例 --- 登录以及页面信息增删改查
【java】案例 --- 登录以及页面信息增删改查1. JAVA文件1.2 dao包1.2.1 UserDao.java1.2.2 UserDaoImpl.java1.3 domain包1.3.1 PageBean.java1.3.2 User.java1.4 service包1.4.1 UserService.java1.4.2 UserServiceImpl.java1.5 util包1.5....原创 2020-01-12 22:36:25 · 2625 阅读 · 5 评论 -
【java】JSP --- JSTL[JSP标准标签库]
【java】JSP --- JSTL[JSP标准标签库]1. JSTL是什么?2. JSTL的作用3. JSTL的使用步骤4. 常用的JSTL标签5. 核心标签6. 格式化标签7. SQL标签8. XML 标签9. JSTL函数1. JSTL是什么?JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断...原创 2020-01-11 11:53:41 · 333 阅读 · 0 评论 -
【java】JSP --- EL表达式
【java】JSP --- EL表达式1. 什么是EL表达式2. EL表达式的作用3. EL表达式的语法3.1 忽略EL表达式3.2 EL表达式的使用3.2.1 运算3.2.2 获取值3.2.3 隐式对象:1. 什么是EL表达式EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JS...原创 2020-01-11 11:20:19 · 552 阅读 · 0 评论 -
【java】JSP --- 动态网页开发技术
【java】JSP --- 动态网页开发技术1. 什么是JSP?2. 为什么使用JSP?3. JSP的原理4. JSP的优势5. JSP的脚本6. JSP的三大指令6.1 page6.2 include6.3 taglib7. JSP的九大内置对象8. JSP的动作标签8.1 include8.2 forward8.3 param8.4 其他9. JSP的注释1. 什么是JSP?JSP全称Ja...原创 2020-01-11 10:31:37 · 2446 阅读 · 0 评论 -
【java】Session --- 服务器端会话技术
【java】Session --- 服务器端会话技术1. 会话技术2. Session2.1 什么是Session?2.2 Session快速入门2.3 Session实现原理和机制2.4 Session的细节2.5 Session的特点和作用1. 会话技术会话:一次会话中包含多次请求和响应。一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止功能:在一次会话的...原创 2020-01-10 11:14:37 · 468 阅读 · 0 评论 -
【java】Cookie --- 客户端会话技术
【java】Cookie --- 客户端会话技术1. 会话技术2. Cookie2.1 什么是Cookie?2.2 Cookie快速入门2.3 Cookie实现原理和机制2.4 Cookie的细节2.5 Cookie的特点和作用2.6 案例:记住上一次访问时间1. 会话技术会话:一次会话中包含多次请求和响应。一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止功...原创 2020-01-10 10:49:01 · 317 阅读 · 0 评论 -
【java】HTTP协议概述与Response基础
【java】HTTP协议概述与Response基础1. HTTP协议概述1.1 请求消息:客户端发送给服务器端的数据1.2 响应消息:服务器端发送给客户端的数据2. Response对象2.1 重定向2.2 路径写法2.3 服务器输出字节(字符)数据到浏览器3. ServletContext对象1. HTTP协议概述1.1 请求消息:客户端发送给服务器端的数据数据格式:请求行请求头...原创 2019-12-31 15:57:44 · 250 阅读 · 1 评论 -
【java】验证码
【java】验证码servlet文件简单输入框效果servlet文件实现: 生成随机验证码图片。package cn.siyi.web.servlet;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;impo...原创 2019-12-30 23:43:11 · 138 阅读 · 0 评论 -
【java】HTTP概述与Request基础
【java】HTTP概述与Request基础1. HTTP概述2. Request:2.1 request对象和response对象的原理2.2 request对象继承体系结构:2.3 request功能:2.3.1 获取请求消息数据2.3.2 其他功能:1. HTTP概述概念:Hyper Text Transfer Protocol 超文本传输协议传输协议:定义了,客户端和服务器端...原创 2019-12-28 18:16:31 · 173 阅读 · 0 评论 -
【java】Servlet基础
【java】Servlet基础1. Servlet 是什么?2. Servlet 架构3. Servlet的主要任务4. Servlet快速入门:5. IDEA与tomcat的相关配置1. Servlet 是什么?Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层...原创 2019-12-28 17:39:57 · 416 阅读 · 0 评论 -
【XML】java解析XML(通过Jsoup实现)
【XML】java解析XML(通过Jsoup实现)1. 解析2. Jsoup1. 解析解析:操作xml文档,将文档中的数据读取到内存中操作xml文档1. 解析(读取):将文档中的数据读取到内存中2. 写入:将内存中的数据保存到xml文档中。持久化的存储解析xml的方式:1. DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树* 优点:操作方便,可以对文档进...原创 2019-12-15 16:05:22 · 638 阅读 · 0 评论 -
java中StringBuilder类与String类的区别以及常用功能以及方法
java中StringBuilder类与String类的区别以及常用功能以及方法一。StringBuilder介绍;二。String和StringBuilder的区别;三。构造方法;四。成员方法;五。添加功能;六。反转功能;七。String和StringBuilder之间的相互转换;1。String转换为StringBuilder;2。StringBuilder转换成String;一。Strin...原创 2019-01-21 17:38:06 · 2372 阅读 · 0 评论 -
Java8新特性之Lambda表达式和函数式接口
Java8新特性之Lambda表达式和函数式接口一. 函数式接口简介1. 概念2. 格式3. @FunctionalInterface注解二. Lambda表达式1. 概念2. 格式3. 示例三. 函数式编程1. Lambda的延迟执行2. 使用Lambda作为参数和返回值四. 常用函数式接口1. Supplier接口2. Consumer接口3. Predicate接口4. Function接口...原创 2019-03-08 23:52:19 · 633 阅读 · 0 评论 -
Java8新特性之Stream流以及方法引用
Java8新特性之Stream流以及方法引用一. String流1. 引言2. 流式思想概述3. 获取流4. 常用方法4.1 逐一处理:forEach4.2 过滤:filter4.3 映射:map4.4 统计个数:count4.5 取前几个:limit4.6 跳过前几个:skip4.7 组合:concat二. 方法引用1. 冗余的Lambda场景2. 问题分析3. 用方法引用改进代码4. 方法引用...原创 2019-03-09 21:33:39 · 5085 阅读 · 4 评论 -
Java中与Junit,反射,注解的初次学习
Java中与Junit,反射,注解的初次学习一. Junit1. Junit简介2. Junit的作用3. Junit的使用:白盒测试二. 反射1. 反射简介2. 获取Class对象的方式3. Class对象的功能获取功能(对应功能类似):4. Field:成员变量5. Constructor:构造方法6. Method:方法对象7. 案例三. 注解1. 注解简介2. 概念描述3. 作用分类4. ...原创 2019-03-15 10:14:17 · 438 阅读 · 0 评论 -
浅谈JDBC(一):快速入门,详解各个类,抽取JDBC工具类以及JDBC控制事务
浅谈JDBC(一):快速入门,详解各个类,抽取JDBC工具类以及JDBC控制事务一. JDBC1. JDBC概念2. 准备阶段2.1 导入jar包2.2 加载和注册驱动3. JDBC快速入门4. 详解JDBC各个对象4.1 DriverManager:驱动管理对象4.2 Connection:数据库连接对象4.3 Statement:执行sql的对象4.4 ResultSet:结果集对象,封装查询...原创 2019-03-25 23:05:15 · 352 阅读 · 0 评论 -
浅谈JDBC(二):数据库连接池以及Spring JDBC:JDBCTemplate
浅谈JDBC(二):数据库连接池以及Spring JDBC:JDBCTemplate一. 数据库连接池1. 概述2. 好处3. 实现4. C3P0:数据库连接池技术5.Druid:数据库连接池实现技术二. Spring JDBC1. 概述2. 步骤3. 练习一. 数据库连接池1. 概述数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个...原创 2019-03-26 13:56:30 · 571 阅读 · 0 评论