自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

原创 Java网络编程 TCP/IP与UDP

套接字(Socket)Socket最初是加利福尼亚大学Berkeley分校为Unix系统开发的网络通信接口。后来随着TCP/IP网络的发展,Socket成为最为通用的应用程序接口,也是在Internet上进行应用开发最为通用的API。套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与...

2020-03-06 13:49:57 304

原创 线程池

一、为什么要用线程池1、提高程序的执行效率如果程序中有大量短时间任务的线程任务,由于创建和销毁线程需要和底层操作系统交互,大量时间都耗费在创建和销毁线程上,因而比较浪费时间,系统效率很低;线程池里的每一个线程任务结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用,因而借助线程池可以提高程序的执行效率。2、控制线程的数量,防止程序崩溃如果不加限制地创建和启动线程很容易...

2020-03-05 22:01:23 160

原创 MyBatis缓存技术

为了提升查询效率,提高用户体验,MyBatis提供了数据缓存支持,依据数据缓存的有效范围默认定义了一级缓存和二级缓存一级缓存1、该级缓存默认开启,不能关闭;2、该级缓存为SqlSession级别的缓存,也称为本地缓存;效果如下:public static void main(String[] args){InputStream inputStream; try { inputSt...

2020-03-02 14:59:55 285

原创 Spring MVC 工作原理

Spring MVC 工作流程图Spring MVC 执行流程DispatcherServlet是SpringMVC的一个关键类,关键点 是DispatcherServlet重写了FrameworkServlet的doService()方法,doService()又调用了doDispatch()方法,这两个方法是整个程序的关键点用户发送请求至前端控制器DispatcherServlet...

2020-03-01 16:11:36 339

原创 Spring MVC 拦截器执行时机

一、准备工作搭建好Spring MVC环境以后,我们创建一个拦截器:名为MyInterceptor并实现HandlerInterceptor接口:实现接口方法、便于观察我们只在控制台输出对应的方法名:package com.jd.interceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet...

2020-02-28 17:03:06 685

原创 Spring MVC 自定义视图解析器执行流程

本篇以自定义Excel视图为例一、自定义视图除了配置SSM环境以外,还需要支持生成Excel文件的jar包本例jar包:spring xml文件配置:<context:component-scan base-package="com.jd"></context:component-scan><bean class="org.springframework...

2020-02-27 22:48:58 405

原创 SpringMVC请求执行过程

SpringMVC请求执行过程默认是进行了请求转发,本片博客将通过源码大致梳理一下执行流程。一、客户端向服务器端发送请求1、主页面2、spring xml文件配置:3、处理请求的方法:4、目标页面:4、发送请求:二、分析请求处理的过程从web.xml配置着手:进入DispatcherServlet类:我们会发现,DispatcherServlet类中,并没有重写se...

2020-02-26 22:00:37 181

原创 线程中的ThreadLocal

在多个线程交替执行的情况下,为了保证数据的独立性,我们可以使用局部变量,但是在进行不同方法或者不同类的调用时,局部变量未必好使,这时候就需要提升变量的作用范围,但问题也会随之而来。例:/*如下代码: 主线程创建两个线程; 每个线程获得一个随机数并赋值给全局变量data; 并通过内部类A,B的get方法输出;*/public class Test {private static...

2020-02-26 14:04:35 386

原创 Spring MVC中的@SessionAttributes注解

@SessionAttributes注解用于:将响应方法中处理请求时添加的与该注解匹配的数据添加到session中。1、该注解只能应用在类上2、这种添加方式在Map的put方法、Model和ModelMap的addAttribute方法或ModelAndView的addObject方法中有效。3、@SessionAttributes值:可以通过value或names注解属性指定哪些属性放到S...

2020-02-26 11:05:43 333

原创 Spring MVC 数据格式化

除了我们前面说的数据类型转换器,还有另一种转换数据类型的方法,那就是数据格式化。例:将特定格式字符串转为Date或int型:实现1、在声明属性时,加上格式化注解①@DateTimeFormat注解可对java.util.Date、java.util.Calendar、java.long.Long时间类型进行标注:pattern 属性:类型为字符串。指定解析/格式化字段数据的模式,如:...

2020-02-26 11:05:35 101

原创 数据类型转换器

在开发项目的过程中,我们往往会从用户端获取一系列类型的数据,但是获取时,用户方传送的数据往往是通过字符串的形式,在后台接受时就会自动的进行数据类型转换,这时候,就用到了数据类型转换器。Spring MVC默认数据类型转换器ConversionService converters = java.lang.Boolean -> java.lang.String : org.spring...

2020-02-26 11:05:26 704

原创 SpringMVC一个请求执行过程

我们在web.xml中设置好了相应的servlet类,并在项目发布时,就生成相应的对象,这样在发送第一个请求时,就省去了加载servlet类的时间,直接调用service()方法,逐步完成对请求的处理。涉及的类:四个类的关系代码流程执行HttpServlet类中的service方法执行FrameworkServlet类中重写的doGet方法:执行FrameworkServl...

2020-02-18 11:40:18 201

原创 配置DispatcherServlet类时load-on-startup标签作用

我们先来看一下web.xml文件中DispatcherServlet类的配置 <!-- The front controller of this Spring Web application, responsible for handling all application requests --> <servlet> <servlet-name>sp...

2020-02-18 11:06:13 179

原创 MyBatis之动态SQL

我们实际应用中通过删,改,查操作数据时,sql语句的条件往往是不确定的。如:这是一个用户信息表。我想修改两个数据但是只知道一个用户的id,和另一个用户的age。当然通过写不同的方法来实现,但是有便捷的多的方法,那就是动态sql。动态SQLjava中我们可以通过判断某字段是否传值,来进行java的代码拼接实现动态sql。Mybatis的动态sql逻辑上也类似,本篇将通过不同操...

2020-02-12 20:43:06 124

原创 MyBatis的应用

一、MyBatis之前的项目中,我们的sql语句是直接嵌在java代码中的,这种方式使得程序移植后的维护修改非常繁琐。如果能将sql语句和java代码分离开来,显然能方便许多。MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映...

2020-02-10 23:10:46 187

原创 Spring框架中的JDK与CGLib动态代理

Spring框架中有两种动态代理:JDK与CGLib动态代理一、JDK与CGLib动态代理区别例:导入jar包我们先创建一个目标类接口:public interface IMathService { int add(int a, int b); int div(int a, int b);}然后实现该接口import org.springframework.stere...

2020-02-10 11:11:36 202

原创 Spring事务

事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性Spring 实现事务管理有如下两种方式:编程式事务管理:将事务管理代码嵌入到业务方法中来控制事务的提交和回滚,在编程式管理事务中,必须在每个事务操作中包含额外的事务管理代码。声明式事务管理(推荐):大多数情况下比编程式事务管理更好用,它将事务管理代码从业务方法中分离出来,以声明的方式来实现事务管理,Spr...

2020-02-07 16:17:39 423

原创 JDBCTemplate

JdbcTemplate是Spring JDBC的核心类,借助该类提供的方法可以很方便的实现数据的增删改查。配置xml文件:<context:component-scan base-package="com.jd"></context:component-scan><bean id="dataSource" class="com.zaxxer.hikari.H...

2020-02-07 15:28:43 123

原创 数据库连接池

一、目的在之前数据库部分博客提到了java的JDBC技术,当时我们是用封装方法获取数据库连接在操作数据库数据后再进行释放,在这种方式每次执行数据操作都需要创建一次新的数据库连接,然后再进行释放。然而:数据库连接是一种关键、有限且昂贵的资源,创建和释放数据库连接是一个很耗时的操作,频繁地进行这样的操作将占用大量的性能开销,进而导致网站的响应速度下降,严重的时候可能导致服务器崩溃;数据库连接池可...

2020-02-07 11:21:21 124

原创 AOP增强方法的执行时机

上一篇博客为大家介绍了AOP及五种增强方法,本篇将再次总结同一目标函数不同增强方式的执行时机、以及用另一种AOP实现方式——xml文件配置来验证同一目标函数的同种增强方式的不同方法执行的顺序。一、增强方式的执行时机1、前置增强:在目标方法执行前先执行2、后置增强:目标方法执行完毕执行3、返回增强:目标方法结果返回后执行4、后置增强与返回增强区别:正常情况下后置增强先于返回增强执行;如果目...

2020-02-05 14:55:40 696

原创 Spring中的AOP技术

一、AOP技术AOP(Aspect Oriented Programming 面向切面编程)是一种通过运行期动态代理实现代码复用的机制,是对传统OOP(Object Oriented Programming,面向对象编程 )的补充。目前,Aspectj是Java社区里最完整最流行的AOP框架,在Spring 2.0以上版本中可以通过Aspectj注解或基于XML配置AOP。二、AOP技术的应用...

2020-02-05 14:17:07 154

原创 servlet的生命周期

一、Servlet的实质Servlet是服务器端的Java应用程序,可以生产动态Web页面。透过JSP执行过程可以知道JSP最终被编译成一个.class文件,查看该文件对应的Java类,发现该Java类继承自org.apache.jasper.runtime.HttpJspBase类,而HttpJspBase继承自HttpServlet类,由此可知:JSP第一次运行时实质上是被JSP引擎翻译成了...

2019-12-19 18:02:28 75

原创 异步实现分页

为什么分页?分页是一种将所有数据分段展示给用户的技术。用户每次看到的并不是全部数据,而是其中的一部分,如果在这部分数据中没有找到自己想要的内容,可以通过指定页码或是翻页的方式转换到其他内容,直到找到自己想要的内容为止。这种技术缩短了请求响应时间,而且也不会出现因数据过多导致页面冗长的情况,提高了用户体验。分页的实现初步思路:异步①为页面指定:能够显示的最多数据条数②通过当前页码来确定显...

2019-12-10 18:03:25 1261

原创 EL与JSTl

本篇实例均为请求转发式、在目标页中对请求数据进行处理。<!-- index.jsp(首页:发送请求页) --><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HT...

2019-12-10 15:20:26 101

原创 JSON实现三级级联

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd...

2019-12-08 16:24:49 1320

原创 css样式(三)

一、outline:轮廓线是在标签边框边缘绘制一条线,该线不会占据空间,也不一定是矩形,主要起到突出标签的作用<html> <head> <meta charset="UTF-8"> <title></title> <style> input{ //去除默认样式 outline: ...

2019-12-06 17:20:43 78

原创 重定向与请求转发

一、重定向重定向(Redirect):客户端浏览器向Web应用服务器端发送一个请求,Web服务器端使用HttpServletResponse的sendRedirect()方法将结果(结果中头信息内HTTP状态码为302,Location响应报头域中保存响应回来的地址)返回客户端浏览器;客户端浏览器收到服务器端结果后解析其头部信息,然后自动按照头部指定地址以GET方式再次向Web应用服务器端发请求...

2019-12-05 21:08:29 163

原创 Tomcat文件目录结构

Tomcat软件:一、什么是Tomcat是一个Apache软件基金会Jakarta项目中的核心项目;是一个免费的开放源代码的轻量级Web应用服务器;运行时占用资源小,支持负载均衡与邮件服务等开发应用系统常用功能。下载地址:https://tomcat.apache.org/二、软件目录结构1、bin:存放了启动Tomcat软件的命令,这些命令可以在Windows和Linuxf操作系统上运...

2019-12-04 18:56:10 124

原创 css常用样式(二)

一:垂直居中line-height:当line-height值与标签高度相同时,便可实现垂直居中。<html> <head> <meta charset="UTF-8"> <title></title> <style> div{ width: 300px; height: 50px; ...

2019-12-04 18:48:44 199

原创 css常用样式(一)

六种常用样式:display,margin,padding,position,float,clear一、displaydisplay中的常用属性:none:此元素不会被显示。block:此元素将显示为块级元素,此元素前后会带有换行符。inline:此元素会被显示为内联元素,元素前后没有换行符。inline-block:行内块元素。实例:<html> <hea...

2019-12-03 18:08:25 146

原创 服务器端获取表单数据

一、单个值单个值的表单标签有:文本框、密码框、文本域、下拉列表、单选项目如下:获取单个值:代码如下:<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here&lt...

2019-12-02 18:27:35 2205 1

原创 JQuery插件机制

一、jQuery.extend(object)jQuery.extend(object):扩展jQuery对象本身,主要是用来扩展jQuery全局函数 ,调用时直接$.函数名(参数)<html> <head> <meta charset="UTF-8"> <title></title> <script src="j...

2019-11-30 18:31:48 87

原创 JQuery中的replaceWith与replaceAll

一、replaceWith<html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-3.3.1.js"></script> </head> <body> <span&g...

2019-11-30 09:23:21 107

原创 JQuery中的empty与remove

一、empty<html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-3.3.1.js"></script> </head> <body> <p><a&g...

2019-11-29 15:42:47 67

原创 jQuery绑定事件的方法

一、bind方法绑定<html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-3.3.1.js"></script> </head> <body> <input typ...

2019-11-29 15:31:19 142

原创 JQuery中的bind、clone

<html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-3.3.1.js"></script> </head> <body> <input type="button" ...

2019-11-29 10:49:56 86

原创 JQuery中的wrap、wrapAll、wrapInner、unwrap方法

一、wrap<html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-3.3.1.js"></script> </head> <body> <span>--abc...

2019-11-29 10:00:13 159

原创 JQuery中的after与insertAfter

一、after<html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-3.3.1.js"></script> </head> <body> <span id="tes...

2019-11-29 09:12:50 106

原创 JQuery中的append与appendTo

一、append<html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-3.3.1.js"></script> </head> <body> <span id="te...

2019-11-28 20:39:30 103

原创 JQuery中的next与nextAll

一、next<html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-3.3.1.js"></script> </head> <body> <form> &...

2019-11-28 18:48:52 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除