![](https://img-blog.csdnimg.cn/20200619181617787.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础
文章平均质量分 51
基础
GuessHat
骐骥一跃,不能十步,驽马十驾,功在不舍
展开
-
keytool的使用
keytool的使用keytool为java原生自带,安装java后不需要再进行安装,作为密钥和证书管理工具,方便用户能够管理自己的公钥/私钥及证书,用于认证服务。1. 相关概念keystore keytool将密钥(key)和证书(certificates)存储在keystore文件中,密钥需要存储在密钥库中2. 相关命令-alias 产生别名-keystore 指定密钥库的名称(就像数据库一样的证书库,可以有很多个证书,cacerts这个文件是jre自带的,你也可以使原创 2022-02-19 22:49:47 · 22187 阅读 · 2 评论 -
java中双冒号的使用
java中双冒号的使用java中双冒号主要用于静态方法的使用,在使用forEach方法时使用,案例如下:package com.example.api.test;public class Test2 { //有参调用 public static void test(int i){ System.out.println(i); } //无参调用 public static void test2(){ System.out.printl原创 2021-08-08 10:49:52 · 2791 阅读 · 2 评论 -
设计模式介绍
设计模式介绍1.简介一共分为23种设计模式创建型模式(5种):怎么进行对象的创建,让对象的创建和使用分离结构型模式(7种):将对象或者类按照某种模式或者布局组成更大的结构行为型模式(11种):描述类或者对象之间怎么进行相互协作,完成单个对象无法完成的任务,主要是对职责的划分2.面向对象的七大原则3.设计模式具体分类模式名称:适用的问题及环境:解决的方案:解决的效果:3.1 单例模式3.1.1 饿汉式存在问题:资源浪费//饿汉式public class Hungry {原创 2021-03-29 07:55:19 · 640 阅读 · 0 评论 -
java中的枚举
java中的枚举枚举类型的主要作用是不能够自己创建该对象,暴力反射也不可以,可以作为单例模式的类型关键字 Enum1.定义一个枚举package single;public enum EnumSingle { //表示该枚举类创建了两个单例模式的枚举类,这里的名称自定义,并且都有下面的成员变量和方法 INSTANCE,TWO; private String name; public String getName() { return name;原创 2021-03-28 10:53:27 · 696 阅读 · 0 评论 -
java原始命令
java原始命令1. java反编译命令进入到该类的包位置javap -p 类名原创 2021-03-28 08:51:03 · 130 阅读 · 0 评论 -
java8中的Stream流API
java8中的Stream流API1.理解java8中stream时对数据源进行一系列的操作,最终返回一个流stream不会储存数据不改变源数据操作是延迟执行的,会等到需要结果的时候才执行2.操作步骤创建Stream中间对数据的操作终止操作3.创建流3.1 通过Collection提供的方法3.1.1 stream()方法串行流3.1.2 parallelStream()方法并行流3.2 通过Arrays的stream()方法3.3 通过Stream类中的静态原创 2021-01-31 10:20:36 · 211 阅读 · 0 评论 -
lambda表达式中的构造器&数组引用
lambda表达式中的构造器&数组引用1.构造器格式:ClassName::new2.构造器实例 @Test public void test5(){ //原来的方法 Supplier<Employee> supplier = ()->new Employee(); //构造器应用 Supplier<Employee> supplier1 = Employee::new;原创 2021-01-24 09:56:55 · 302 阅读 · 0 评论 -
lambda表达式中的方法引用
lambda表达式中的方法引用主要有三种语法格式:对象::实例方法名类::静态方法名类::实例方法名1.方式一Employee 类@Data@AllArgsConstructorpublic class Employee { private String name; private Integer age; private double salary;}方法引用 @Test public void test2(){ Emplo原创 2021-01-24 09:34:40 · 225 阅读 · 0 评论 -
java8中 lambda表达式
java8 lambda表达式lambda是一个匿名函数,先用以下的具体例子对比下1.匿名内部类原始方法import org.junit.Test;public class TestLambda { @Test public void test1() { Comparator<Integer> comparator = new Comparator<Integer>() { @Override原创 2021-01-17 16:42:29 · 138 阅读 · 0 评论 -
log4j日志级别
log4j日志级别Log4j的级别类org.apache.log4j.Level里面定义了日志级别,日志输出优先级由高到底分别为以下8种。日志级别:OFF | 关闭:最高级别,不打印日志。FATAL | 致命:指明非常严重的可能会导致应用终止执行错误事件。ERROR | 错误:指明错误事件,但应用可能还能继续运行。WARN | 警告:指明可能潜在的危险状况。INFO | 信息:指明描述信息,从粗粒度上描述了应用运行过程。DEBUG | 调试:指明细致的事件信息,对调试应用最有用。TRA原创 2020-10-13 17:17:19 · 2620 阅读 · 0 评论 -
JUnit测试简单说明
JUnit测试简单说明原理是利用注解和反射对已开发的类和方法进行测试1.主要用到的注解:@Test 单元测试@Before 在每个单元测试前执行@After 在每个单元测试后执行@BeforeClass 整个测试用例开始前@AfterClass 整个测试用例结束后这里需要注意的是BeforeClass和AfterClass需要使用静态方法声明否则报错:2.测试案例测试代码public class TestDemo { @BeforeClass public原创 2020-08-29 10:01:14 · 173 阅读 · 0 评论 -
java中的注解
java中的注解1.介绍首先注解的作用类似原创 2020-08-29 09:30:39 · 129 阅读 · 0 评论 -
过滤器Filter
过滤器Filter1.介绍过滤器的作用是对web资源进行预处理,处理后再交给下一个过滤器或者Servlet特点:先于Servlet而执行过滤器可以多个组成过滤器链2.应用权限检查统一编码处理统一请求参数获取(普通请求&文件上传)…3.开发流程实现Filter接口在web.xml中配置<filter> <filter-name></filtername> <filter-class></filter-cl原创 2020-08-20 17:21:42 · 138 阅读 · 0 评论 -
监听器Listener
监听器web三大组件:servlet监听器Listener过滤器Filter1.监听器的分类域对象存取的监听域对象本身的生命周期2.监听器的开发流程按照目标选择定义实现不同接口的类在web.xml中配置3.不同域对象生命周期监听的接口ServletContext —> ServletContextListener(用的最多)可以利用servletContext的特性,在项目加载时就创建连接池,在项目销毁时关闭连接池Session ----> HttpS原创 2020-08-20 08:27:21 · 160 阅读 · 0 评论 -
文件上传案例
文件上传案例1.浏览器端说明请求方式为post采用form表单提交,Input标签类型位fileform表单的enctype属性值设置为multipart/form-datajsp代码:<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>$Title$</title> </head>原创 2020-08-19 18:14:09 · 233 阅读 · 0 评论 -
事务简单操作
事务简单操作1.介绍事务是数据库中的概念: 它是将一组SQL操作关联在一起,它们要么全部执行,要么全部不执行。当不考虑事务的问题时,可能会发生以下的问题:脏读 (Tom先做了转出,然后在程序开始执行给Jerry进行增加时,Tom反悔了,撤销了转出,但程序已经开始对Jerry进行增加金额,程序实际是读取了提交前的数据,造成了脏读)不可重复读(在Tom转出前读取一次,在Tom转出后Jerry收到前比如查询余额再读一次,两次结果不一样,造成不可重复读)虚读/幻读(涉及到数据的增删,表格结构发生变化原创 2020-08-12 11:17:25 · 287 阅读 · 0 评论 -
实际开发简化Servlet
实际开发简化Servlet1.设置BasicServletBasicServlet的主要作用是减少Servlet类在创建后重复写入某些代码,比如:处理中文乱码,获取想要实现的功能名称并通过反射实现对应的方法实际创建使用抽象类实际代码:BasicServletpublic abstract class BasicServlet extends HttpServlet { @Override protected void service(HttpServletRequest req,原创 2020-08-12 08:49:45 · 268 阅读 · 0 评论 -
DbUtils工具类简单使用
DbUtils工具类1.介绍官网地址:http://commons.apache.org/proper/commons-dbutils/DbUtils是Apache开发的用于数据库连接操作的JDBC开发工具包下载地址:核心类:QueryRunner带参DateSource的构造方法,自动从连接池获取链接,用完后会自动放回...原创 2020-08-11 17:58:37 · 374 阅读 · 0 评论 -
JSTL标签库
JSTL标签库1.介绍JSTL java standard tag lib : Java的标准标签库tagLib 技术的出现,就是为了解决 JSP页面中大量的难于维护的 Java 代码。2.下载引用下载地址:链接:https://pan.baidu.com/s/1Hk1CME_0sN4-3y89J6bRdw提取码:3o7p也可以在菜鸟教程上进行下载:https://www.runoob.com/jsp/jsp-jstl.html下载完成后将引入lib目录下的两个jar包到我们的项目中原创 2020-08-08 11:08:10 · 174 阅读 · 0 评论 -
EL表达式
EL表达式EL表达式 是 JSP技术中原生支持的 表达式解析格式:${表达式内容}理解:1.EL表达式是从域或者对象范围内查找变量数据的,如果没有传入域,则它会有默认的查找顺序2.EL表达式返回的是一个显示结果,只能写在标签内,不能直接写在<% %>的代码内1. 11大内置对象pageScoperequestScopesessionScopeapplicationScopeparam 一个请求参数值paramValues 一组请求参数值header 一个请求头值原创 2020-08-07 17:43:30 · 259 阅读 · 0 评论 -
JSP介绍
JSP介绍1.基本信息JSP全称 java server page 是一种java服务器动态页面主要功能是:将java代码和特定需要变化的内容内嵌到静态网页中,如果我们只使用java代码进行网页的响应,需要在java代码中写入大量的html内容,既然html文件是一定要写的,那么把html文件抽象出去,把java代码动态加入进去即可本质上: 是HTML代码中夹杂着Java代码,它是以HTML为主体。其实,JSP也是Servlet。文件的后缀名是 .jsp2.JSP的处理逻辑当浏览器第一次原创 2020-08-06 14:49:40 · 1299 阅读 · 1 评论 -
PageContext域对象
PageContext域对象PageContext域对象一般存在于JSP文件中,自己本身作为域对象可以存储和查询修改数据,并且在JSP中可以快捷的获取其他域对象作为域对象的通用方法:java中的域对象特有的方法:获取其他域对象利用域对象方法给其他域对象内设置值set、remove、get方法都适用setAttribute(java.lang.String name, java.lang.Object o, int scope)scope表示其他域对象的代号1表示自己pageCo原创 2020-08-06 14:47:08 · 756 阅读 · 0 评论 -
JSP九大内置对象
JSP九大内置对象JSP内部规范了一些固定名称的变量,这些变量我们可以直接在JSP中使用,并被称为内置对象我们可以在TomCat为我们生成的.java文件中看到:注意: 只有在page标签内设置了 isErrorPage = “true” 的时候,当前页面中才能访问到全部的 9个内置对象。request : 当前http请求对象response : 当前http响应对象session: 当前的session会话application : 当前的ServletContext域对象pag原创 2020-08-06 09:05:39 · 118 阅读 · 0 评论 -
Cookie对象
Cookie对象1.介绍cookie对象通常和Session对象结合使用,用来跟踪会话,session对象通常是放在服务器端,有域的存储查询数据的作用,在浏览器请求后服务器返回给浏览器一个sessionID值,加入到cookie中,用来记录区分客户,而cookie则是由一个 servlet发送给 Web浏览器的一定数量的信息,不只包含sessionID,它由浏览器保存,并在之后重新发送给服务器,一个cookie的值能唯一的标示一个客户机这样,sessionID值存储在cookie中就能在浏览器原创 2020-08-04 19:05:53 · 735 阅读 · 0 评论 -
Session域对象
Session域对象在同一个客户访问服务器时,如果发生了响应重定向,则之前的request域中存在的数据就会丢失,所以出现Session域对象,用来记录是否是同一个客户进行访问,进行会话跟踪,并进行数据存储和获取。...原创 2020-08-04 10:18:29 · 1223 阅读 · 0 评论 -
HttpServletRequest请求域对象
请求域对象HttpServletRequest对象,也能作为 “域对象” 存取数据。在我们进行请求转发的时候,因为服务器端跨servlet进行处理,通常会涉及数据的传输,这里可以通过:ServletContext域对象进行数据存储,全局访问通过HttpServletRequest域对象,因为只有一次请求,所以相同的请求域可以用来存储数据并传输域对象共有的方法:java中的域对象代码实现:Demo1代码:public class Demo1Servlet extends HttpServ原创 2020-08-03 08:44:52 · 1239 阅读 · 0 评论 -
转发和重定向
转发和重定向它们两个都是用于Servlet之间跳转的技术。请求转发是发生在服务器端,响应重定向发生在客户端。1.请求转发简单说就是浏览器发送请求之后,服务器端为了处理请求,需要转到不同的Servlet中,处理完成后将结果返回浏览器,整个跳转只涉及服务器端,特点是:一次请求,一次响应浏览器地址栏不发生变化具体代码实现getRequestDispatcher 指定的是 服务器端路径 用于表示 目标Servlet的映射地址forward 方法表示转发 , 要使用相同的请求 和 响应对象。req原创 2020-08-03 08:31:55 · 116 阅读 · 0 评论 -
随机验证码案例实现
验证码案例实现1.需求:实现图片上四位随机字母和数字的验证码,并且图片上有线条和点的干扰验证码的生成应该是在服务器端生成,响应回客户端,等客户端输入完信息后提交传回到服务器端进行判断,此过程涉及请求转发,需要跨Servlet传输数据,因此验证码的数据存储需要使用到域对象,这里使用ServletContext来进行数据存储2.java图片操作技术awt技术2.1绘画对象:BufferedImage所有 BufferedImage 对象的左上角坐标都为 (0, 0)。构造方法:设置宽高和图原创 2020-08-01 16:03:15 · 297 阅读 · 0 评论 -
文件下载案例实现
文件下载案例实现首先测试一下在html中什么样的文件设置超链接后点击可以直接下载1.html测试Html代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><ul> <li><a href="reso原创 2020-08-01 10:12:24 · 241 阅读 · 0 评论 -
HttpServletResponse接口
HttpServletResponse接口负责处理HTTP响应报文。1.响应状态码:2.响应行方法setStatus()设置响应消息的状态码。response.setStatus(200);浏览器会解析成功,页面没有其他显示信息。setError(404)setError(500)sendError() 用指定的状态向客户端发送一个错误响应。sendErroe(404)sendErroe(404,"信息错误")3.响应头方法req.setHeader() 设置原创 2020-07-31 20:22:12 · 281 阅读 · 0 评论 -
Web目录下的文件数据获取
Web目录下的文件数据获取1.利用ServletContext对象获取web项目下的资源只要是web项目,其实所有资源都可以通过ServletContext对象来获取参考:ServletContext域1.1获取web文件夹下的properties文件目录结构:代码Demo2public class Demo2Servlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpSer原创 2020-07-30 20:05:51 · 545 阅读 · 0 评论 -
Web应用初始化参数的设置和获取
Web应用初始化参数的设置和获取1.初始值的设置web初始化参数可以通过web.xml文件中进行设置,标签是<context-param>和子标签<param-name>、<param-value>2.初始值的获取主要通过SerletContext对象来获取案例代码:获取web.xml文件中的单个初始值和所有配置的名称web.xml <context-param> <param-name>key</pa原创 2020-07-30 15:14:59 · 2399 阅读 · 0 评论 -
ServletContext域
ServletContext域1.基本信息类型:公共接口作用范围:整个web项目作用:用来获取和存储web中的数据ServletContext接口对象是随着web项目加载而创建的,每个web项目都有一个ServletContext2.ServletContext获取三种方式:利用HttpServlet对象ServletContext servletContext = this,getServletCOntext();利用Config对象ServletContext servletCo原创 2020-07-29 10:45:00 · 1082 阅读 · 0 评论 -
java中的域对象
java中的域对象1.什么是域对象域对象主要用在web应用中,负责存储数据,通俗的将就是这个对象本身可以获得一定范围内的所有数据,可以理解为万能的一个属性,只要调用它就可以获得这个范围(域)内的想要的数据2.域对象分类根据 作用域的不同主要分为:PageContext域request域session域ServletContext域从上到下作用域依次增大,可以理解为类似修饰符private 、protected 、默认、public 的等级...原创 2020-07-29 09:05:21 · 5978 阅读 · 0 评论 -
HttpServletRequest请求中文乱码问题解决
HttpServletRequest请求中文乱码问题解决原创 2020-07-28 20:06:14 · 2188 阅读 · 0 评论 -
HttpServletRequest请求处理
HttpServletRequest接口的使用1.基本信息:专门用来处理HTTP请求报文的对象。通过它,可以提取请求报文中的相关信息关于http协议的内容参考:HTTP协议简单了解2.获取请求行的内容:2.1 获取请求方式:String method = req.getMethod(); //获取请求方式2.2 获取请求协议String protocol = req.getProtocol();//获取请求的协议2.3 获取请求地址String requestURI = req.get原创 2020-07-28 11:26:17 · 1374 阅读 · 0 评论 -
Servlet在web.xml文件中的配置项
Servlet配置1.优先级为了人为控制Servlet的实例化时机。Servlet默认是第一次访问的时候才会被Tomcat创建。当需要在Tomcat启动的时候就把对应的Servlet创建出来。需要在web.xml中给 标签配置子标签xml文件中设置标签:<load-on-startup>3</load-on-startup>中间的数字越小,优先级越高,tomCat就会越先加载,但是tomCat中也有设置此标签,并且值为1,所以在后续开发中数值应该从2开始,原创 2020-07-27 19:45:25 · 1529 阅读 · 0 评论 -
Srevlet生命周期
Srevlet生命周期Srevlet生命周期主要体现在方法调用过程中:构造方法init 方法只会执行一次service方法每次请求过来都会执行,然后在根据请求方式的不同分发给不同的doXxx方法来执行对于Get请求: 分发给 doGet(HttpServletRequest ,HttpServletResponse) 方法对于Post请求:分发给 doPost(HttpServletRequest ,HttpServletResponse) 方法如果子类没有实现这两个方法,默认在原创 2020-07-25 15:28:56 · 229 阅读 · 0 评论 -
java处理HTTP协议规范
java处理HTTP协议规范1.导入lib使用的是TomCat服务器,需要将TomCat下lib包导入到Idea中进行开发如果第一次请使用参考配置:Tomcat服务器下载部署&idea配置后期开发使用到的主要是这两个jar包idea中设置:实际目录结构:src中存放开发的java源代码web内WEB-INF外存放开发的html/css/js代码等2.写入html文件和Css文件这里我没有写css文件2.1 html文件代码这里action提交地址先设置为#,原创 2020-07-25 12:00:52 · 294 阅读 · 0 评论 -
java结合dom4j解析XML文件操作模拟用户请求和响应
java结合解析XML文件操作模拟用户请求和响应1.项目结构如下:lib下存放了dom4j的关于XML文档操作的jar包web包下存放了需要解析的web.xml文档以及servlet接口和实现类AbcServlet、DefServlet,以及最终模拟用户请求和响应调用的Demo类这里需要导入一下dom4j.jar包下载地址:https://pan.baidu.com/s/1_7JdTML2OexuGUhhAyYkDw提取码:kw6p导入jar包:第2步之后选择jar包的存放位置,可以像我原创 2020-07-23 20:07:33 · 211 阅读 · 1 评论