java
liyong0829
当你望向深渊的时候,深渊也在望着你...
展开
-
搭建maven私服
搭建maven私服环境Nexus 是 Maven 仓库管理器, 通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强大的仓库管理功能,构件搜索功能等nexus.bat installnexus.bat uninstallnexus.bat start登录http://localhost:8081/nexus/nexus 的仓库有 4 种类型:hosted,宿主仓库, 部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部原创 2021-01-23 00:50:32 · 218 阅读 · 0 评论 -
日志坐标
日志坐标<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifact原创 2021-01-21 20:34:08 · 245 阅读 · 0 评论 -
rpm软件包管理器
rpm软件包管理器rpm : 工具, 用来打包 和安装rpm -qa : 查询所有安装过的软件包rpm -e --nodeps 删除的软件包名: 删除指定的安装包 rpm -ivh 包名 :安装rpm包安装JDK.从windows上传到linux在CRT下,Alt+P检查系统上是否安装了jdk(若安装了就需要先卸载再使用我们自己的)java -version查看出安装的java的软件包rpm -qa | grep java卸载linux自带的jdk原创 2021-01-18 00:23:49 · 248 阅读 · 0 评论 -
Linux
Linux是基于Unix的开源免费,多用户,多任务的操作系统,由于Linux系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境做为一个后端程序员,通常在windows/MAC中开发完程序后,得部署到一个相对比较安全,稳定的服务器中运行,这台服务器上安装的不是windows操作系统,而是Linux操作系统。Linux的目录结构Linux不像windows那样有盘符的概念,它的最高目录为根目录(用/表示)/:系统根目录 root目录:超级管理员所在的目录,用~表示 home目原创 2021-01-17 23:59:31 · 285 阅读 · 1 评论 -
json
json的定义和解析在实际的开发通常使用JQuery的Ajax ,或者Vue里面的axiosJSON就是一个容易生成和解析的数据格式;常用作客户端(前端,IOS,安卓)和服务器(JavaEE)之间的数据交换定义方式对象形式:{key:value,key:value…}数组形式:[element1, element2, …]混合(嵌套)形式:以上两种类型任意混合1). json对象的value,可以是任意类型,当然也可以是数组2). 数组里的element,可以是任意类型,当然也原创 2021-01-15 00:30:29 · 77 阅读 · 0 评论 -
权限过滤
权限过滤 /* 1. 这个过滤器拦截所有的请求 2. 拦截所有的请求下来之后,得判定是不是访问隐私的数据,还是访问普通的不需要登录的数据 2.1 如果访问的是登录页面,直接放行 2.2 除了登录页面,所有的请求都得询问有没有登录,(判断session里面有没有user对象) 2.2.1 如果有登录了,就直接放行 2原创 2021-01-14 23:19:15 · 186 阅读 · 0 评论 -
PageBean
PageBeanpublic class PageBean<T> { private List<T> list; //联系人列表 private int curPage;//当前页码 private int sumPage;//总页码 private int count;//总数量 private int curSize;//一页显示的数量 }模块Servlet使用反射优化方法调用 try {原创 2021-01-14 23:10:37 · 83 阅读 · 0 评论 -
Listener
Listener监听器就是一个Java类,用来监听其他的JavaBean对象的变化在javaweb中监听器就是监听三个域对象的状态的。request,session,servletContext(application)监听器的应用主要在Swing编程在Android/ios大量应用JS里面的事件 —> 给按钮设置点击 οnclick=""监听器的术语事件源 :被监听的对象.(目标对象)监听器对象:监听的对象.事件:事件源行为的称呼.注册(绑定)原创 2021-01-14 15:44:04 · 87 阅读 · 1 评论 -
Filter
FilterFilter:一个实现了特殊接口(Filter)的Java类. 实现对请求资源(jsp,servlet,html,)的过滤的功能.过滤器是一个运行在服务器的程序, 优先于请求资源(Servlet或者jsp,html)之前执行. 过滤器是javaweb技术中最为实用的技术.过滤器必须是在所有的请求到来之前,就先准备好应用场景: 登录权限检查, 解决网站乱码, 过滤敏感字符 …Filter生命周期服务器启动的时候, 会调用init()方法进行初始化【调用一原创 2021-01-14 01:47:30 · 92 阅读 · 1 评论 -
mvc&三层架构
JSP的开发模式JSP + Servlet + JavaBean 称为MVC的开发模式.M:model 模型 (javaBean:封装数据)V:View 视图 (JSP:展示数据)C:controller 控制器 (Servlet:处理逻辑代码,做为控制器)三层架构按照不同功能分为不同层,通常分为三层:表现层(web层),业务层,持久(数据库)层分层的意义解耦:降低层与层之间的耦合性。可维护性:提高软件的可维护性,对现有的功能进行修改和更新时不会影响原有的功能可扩展性:提原创 2021-01-14 01:16:15 · 124 阅读 · 0 评论 -
删除cookie
//删除cookie,创建同名的cookie,设置时间为0,路径为同名的路径证明是同一个cookie,写回给客户端 Cookie coo=new Cookie("命名",""); coo.setMaxAge(0); coo.setPath("要删除的cookie的同一个路径"); response.addCookie(coo);...原创 2021-01-08 21:37:04 · 80 阅读 · 0 评论 -
显示用户的上次访问时间
cookie显示用户的上次访问时间 //格式化当前时间 Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String s = sdf.format(date); //创建cookie 记录最新的访问时间,并存储到response缓冲区中 Cookie co = new Cookie("liyong", s)原创 2021-01-08 19:19:50 · 646 阅读 · 1 评论 -
判断浏览器的类型,然后进行编码
中文文件在不同的浏览器中编码方式不同:火狐是Base64编码, 其它浏览器(谷歌)是URL的utf-8编码// 获得浏览器的类型 String agent = request.getHeader("User-Agent"); //判断浏览器的类型,然后进行编码if(agent.contains("Firefox")){ // 火狐浏览器 filename = base64EncodeFileName(filename); }else{ // IE,其他浏览器 filena原创 2021-01-06 20:42:17 · 109 阅读 · 0 评论 -
form表单数据对象封装
使用BeanUtils封装使用request对象来获取请求参数,但是,如果参数过多,我们就需要将数据封装到对象。以前封装数据的时候,实体类有多少个字段,我们就需要手动编码调用多少次setXXX方法BeanUtils是Apache Commons组件的成员之一,主要用于简化JavaBean封装数据的操作使用步骤:导入jar使用BeanUtils.populate(user,map) <form action="Demo1" method="get"> 用户名:<原创 2021-01-06 17:00:08 · 875 阅读 · 0 评论 -
GenericServlet获得ServletContext的源码
GenericServlet获得ServletContext的源码由于HttpServlet extends GenericServlet所以可以直接用this.getServletConext()来获得ServletContext对象 public ServletContext getServletContext() { return this.getServletConfig().getServletContext(); }...原创 2021-01-06 01:24:56 · 108 阅读 · 0 评论 -
HttpServlet重写service方法的源码
HttpServlet重写service方法的源码 protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); long lastModified; if (method.equals("GET")) { l原创 2021-01-06 00:28:11 · 272 阅读 · 0 评论 -
一些常用的正则表达式示例
一些常用的正则表达式示例1、匹配所有的正数:^[0-9]+$2、匹配所有的小数:^\-?[0-9]*\.?[0-9]*$3、匹配所有的整数:^\-?[0-9]+$4、提取信息中的中文字符串: [\u4e00-\u9fa5]* ; 5、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 6、提取信息中的中国手机号码:(86)*0*13\d{9} 7、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{原创 2021-01-04 14:07:30 · 108 阅读 · 0 评论 -
XML解析
XML解析解析方式开发中比较常见的解析方式有三种,如下:DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象 a)优点:元素与元素之间保留结构关系,故可以进行增删改查操作。 b)缺点:XML文档过大,可能出现内存溢出SAX:是一种速度更快,更有效的方法。她逐行扫描文档,一边扫描一边解析。并以事件驱动的方式进行具体解析,每执行一行,都触发对应的事件。(了解)a)优点:不会出现内存问题,可以处理大文件 b)缺点:只能读,不能回写。PULL:Androi原创 2021-01-04 13:57:26 · 53 阅读 · 0 评论 -
反射之操作
反射的引入通过反射技术对类进行了解剖得到了类的所有成员。反射的概念反射是一种机制,利用该机制可以在程序运行过程中对类进行解剖并操作类中的所有成员(成员变量,成员方法,构造方法)使用反射操作类成员的前提要获得该类字节码文件对象,就是Class对象获取一个类的Class对象方式1: 通过类名.class获得方式2:通过对象名.getClass()方法获得方式3:通过Class类的静态方法获得: static Class forName(“类全名”)每一个类的Cla.原创 2021-01-03 12:02:32 · 76 阅读 · 0 评论 -
类加载器
类加载器类的加载当我们的程序在运行后,第一次使用某个类的时候,会将此类的class文件读取到内存,并将此类的所有信息存储到一个Class对象中类的加载时机创建类的实例。类的静态变量,或者为静态变量赋值。类的静态方法。使用反射方式来强制创建某个类或接口对应的java.lang.Class对象。初始化某个类的子类。直接使用java.exe命令来运行某个主类。以上六种情况的任何一种,都可以导致JVM将一个类加载到方法区。类加载器:是负责将磁盘上的某个class文件读取到内存原创 2021-01-03 11:45:00 · 128 阅读 · 0 评论 -
Junit其他注解
Junit其他注解@Before:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。@After:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。@BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前执行一次,而且只执行一次。@AfterClass:用来静态修饰方法,该方法会在所有测试方法之后执行一次,而且只执行一次。Junit断言断言:预先判断某个条件一定成立,如果条件不成立,则直接报错。 使用Assert类中的assertEquals()方法pub原创 2021-01-03 10:48:33 · 191 阅读 · 0 评论 -
XML(EXtensible Markup Language)
XML 指可扩展标记语言(EXtensible Markup Language)XML是用来存储数据, 传输数据的,不是用来显示数据的,而显示数据是用HTMLXML 是 W3C 的推荐标准W3C在1988年2月发布1.0版本,2004年2月又发布1.1版本,但因为1.1版本不能向下兼容1.0版本,所以1.1没有人用。同时,在2004年2月W3C又发布了1.0版本的第三版> xml的作用作为配置文件。 javaee框架 ssm大部分都会使用xml作为配置文件XML可以存储数据 ,原创 2021-01-03 09:49:34 · 378 阅读 · 0 评论 -
NIO2-AIO(异步、非阻塞)
NIO2-AIO(异步、非阻塞)同步:调用方法之后,必须要得到一个返回值。异步:调用方法之后,没有返回值,但是会有回调函数。回调函数指的是满足条件之后会自动执行的方法阻塞:如果没有达到方法的目的,就一直停在这里【等待】。非阻塞:不管有没有达到目的,都直接【往下执行】。在JDK1.7中,这部分内容被称作NIO.2---->AIO,主要在Java.nio.channels包下增加了下面四个异步通道:AsynchronousSocketChannelAsynchro原创 2021-01-03 00:42:45 · 250 阅读 · 0 评论 -
Selector(选择器)
Selector(选择器)选择器Selector的获取和注册Selector选择器的获取Selector selector = Selector.open();注册Channel到Selector通过调用 channel.register(Selector sel, int ops)方法来实现注册:channel.configureBlocking(false);// 设置非阻塞SelectionKey key =channel.register(selector,Selection原创 2021-01-03 00:26:45 · 1347 阅读 · 2 评论 -
Channel(通道)之FileChannel类
Channel(通道)之FileChannel类FileChannel类的基本使用 获取FileChannel类的对象java.nio.channels.FileChannel (抽象类):用于读、写文件的通道FileChannel是抽象类,我们可以通过FileInputStream和FileOutputStream的getChannel()方法方便的获取一个它的子类对象。FileInputStream fi=new FileInputStream(new File(src));原创 2021-01-02 21:46:49 · 488 阅读 · 1 评论 -
Buffer类(缓冲区)之ByteBuffer类
Buffer类(缓冲区)_ByteBuffer类ByteBuffer类内部封装了一个byte[]数组,并可以通过一些方法对这个数组进行操作。创建ByteBuffer对象的三种方式//方式一:在堆中创建缓冲区: public static ByteBuffer allocate(intcapacity)// 方式二: 在系统内存创建缓冲区: public static ByteBuffer allocatDirect(int capacity) // 方式三:通过数组创建缓冲区: publ原创 2021-01-02 18:37:22 · 290 阅读 · 0 评论 -
了解NIO的概述
同步与异步(synchronous/asynchronous)同步: 调用方法之后,必须要得到一个返回值异步: 调用方法之后,没有返回值,但是会有回调函数,回调函数指的是满足条件之后会自动执行的方法阻塞与非阻塞阻塞:如果没有达到方法的目的,就会一直停在那里(等待) , 例如: ServerSocket的accept()方法非阻塞: 不管方法有没有达到目的,都直接往下执行(不等待)NIO这是一个面向块的I/O系统,系统以块的方式处理数据NIO之所以是同步,是因为它的accept/r原创 2021-01-02 14:38:01 · 171 阅读 · 0 评论 -
TCP通信程序
TCP协议相关的类//- Socket : 一个该类的对象就代表一个客户端程序。 - Socket(String host, int port) 根据ip地址字符串和端口号创建客户端Socket对象 //* 注意事项:只要执行该方法,就会立即连接指定的服务器程序,如果连接不成功,则会抛出异常。 // 如果连接成功,则表示三次握手通过。 - OutputStream getOutputStream(); 获得字节输出流对象 - InputStream g原创 2021-01-02 14:12:30 · 162 阅读 · 0 评论 -
Base64
Base64概述Base64是jdk8提出的一个新特性,可以用来进行按照一定规则编码和解码Base64编码和解码的相关方法编码的步骤:获取编码器调用方法进行编码解码步骤:获取解码器调用方法进行解码- Base64工具类提供了一套静态方法获取下面三种BASE64编解码器:基本:输出被映射到一组字符A-Za-z0-9+/,编码不添加任何行标,输出的解码仅支持A-Za-z0-9+/。URL:输出映射到一组字符A-Za-z0-9+_,输出是URL和文件。MIME:输出隐射到原创 2021-01-02 13:56:11 · 77 阅读 · 0 评论 -
方法引用
JDK8新特性方法引用概述方法引用使用一对冒号 :: , 方法引用就是用来在一定的情况下,替换Lambda表达式方法引用基本使用使用场景:如果一个Lambda表达式大括号中的代码和另一个方法中的代码一模一样,那么就可以使用方法引用把该方法引过来,从而替换Lambda表达式如果一个Lambda表达式大括号中的代码就是调用另一方法,那么就可以使用方法引用把该方法引过来,从而替换Lambda表达式方法引用的分类构造方法引用public class Test1_构造方法引用 {原创 2021-01-02 13:46:02 · 229 阅读 · 0 评论 -
Stream
Stream流的引入在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。流式思想: 1. 搭建好函数模型,才可以执行 函数模型: 一定要有终结的方法,没有终结的方法,这个函数模型是不会执行的 1. Stream流的操作方式也是流动操作的,也就是说每一个流都不会存储元素 3.一个Stream流只能操作一次,不能重复使用 4.Stream流操作不会改变数据源获取流方式根据Collection获取流原创 2021-01-02 13:38:24 · 58 阅读 · 0 评论 -
Lambda表达式
Lambda表达式 Lambda表达式的格式: 格式: (数据类型 变量名,数据类型 变量名,..)->{ 代码 } 解析: 小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。 ->是新引入的语法格式,代表指向动作。 大括号内的语法与传统方法体要求基本一致。原创 2021-01-02 11:49:34 · 148 阅读 · 0 评论 -
动态代理
动态代理介绍概述 : 动态代理就是直接通过反射生成一个代理对象,代理对象所属的类是不需要存在的动态代理的获取:jdk提供一个Proxy类可以直接给实现接口类的对象直接生成代理对象动态代理相关api介绍Java.lang.reflect.Proxy类可以直接生成一个代理对象 - Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)生成一个代理对象 - 参原创 2021-01-02 10:40:18 · 66 阅读 · 1 评论 -
注解(annotation)
注解(annotation),是一种代码级别的说明,和类 接口平级关系.注解(Annotation)相当于一种标记,在程序中加入注解就等于为程序打上某种标记,javac编译器、开发工具和其他程序可以通过反射来了解你的类及各种元素上有无标记注解用在“源码中”,作为一个“标记”。给“注解解析器”看的,告诉“注解解析器”怎样编译、运行下面的代码。开发中,我们一般都是使用注解@Override:描述方法的重写.@SuppressWarnings:压制\忽略警告.@Deprecated:标记过时原创 2021-01-02 09:07:50 · 93 阅读 · 0 评论 -
线程池
线程池的好处降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。Runnable实现类代码:public class MyRunnable implements Runnable { @Over原创 2021-01-01 23:25:00 · 46 阅读 · 0 评论 -
HibernateUtils
hibernate.cfg.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration&g原创 2021-01-01 11:22:37 · 86 阅读 · 0 评论 -
C3P0Utils工具类的配置全解
C3P0Utils工具类的配置//c3p0-config.xml配置文件,注意:文件名字不要修改,会自动加载此文件名的文件,不需要手动加载//c3p0Utils配置文件//c3p0Utils测试查询//c3p0Utils查询个数注意:其返回值为Long类型...原创 2020-12-31 23:52:50 · 202 阅读 · 0 评论 -
自定义连接池
自定义连接池//在JDBCUtils工具类的基础上,自定义连接池实现DataSource接口//实现Connection接口增强close方法,关闭就归还连接到连接池注意:要重写预编译方法原创 2020-12-31 23:43:40 · 181 阅读 · 1 评论 -
JDBCUtils工具类
JDBCUtils工具类//db.properties文件//JDBCUtils工具类//JDBCUtils关闭资源原创 2020-12-31 23:36:12 · 68 阅读 · 0 评论