- 博客(60)
- 收藏
- 关注
原创 javaweb之JSP指令、el表达式及jstl标签
一,JSP指令1. 指令作用:用于配置JSP页面,导入资源文件格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 … %>分类:1,page: 配置JSP页面的属性如下:1,contentType:等同于response.setContentType()作用:(1)设置响应体的mime类型以及字符集(2)设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符集)2,import:导包3
2020-07-09 11:11:07
250
原创 javaweb之会话技术cookie&session
一,会话技术1,会话:一次会话中包含多次请求和响应。一次会话,即浏览器第一次给服务器资源发送请求,会话建立,直到一方断开为止。2,功能:在一次会话的范围内多次请求间共享数据。3,方式:客户端会话技术:cookie;服务端会话技术:session.二,Cookie技术1,概念:客户端会话技术,将数据保存到客户端。2,入门(1),创建cookie对象,绑定数据;new Cookie(String name, String value) (2),发送cookie对象;response.a
2020-07-06 21:18:29
308
原创 javaweb之Servlet中response对象
一,概述功能:设置响应消息1,设置响应行格式:HTTP/1.1 200 ok设置状态码:setStatus(int sc)2,设置响应头:setHeader(String name, String value)3,设置响应体:使用步骤:(1),获取输出流字符输出流:PrintWriter getWriter()字节输出流:ServletOutputStream getOutputStream()(2),使用输出流,将数据输出到客户端浏览器二,重定向案例@WebServlet("/
2020-07-04 15:43:23
261
原创 javaweb之servlet技术实现登录功能
一,需求分析用户登录案例需求:1.编写login.html登录页面username & password 两个输入框2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表3.使用JdbcTemplate技术封装JDBC4.登录成功跳转展示:登录成功!用户名,欢迎您5.登录失败跳转展示:登录失败,用户名或密码错误二,技术实现项目目录结构:1,前端页面:<!DOCTYPE html><html lang="zh-CN"><
2020-06-25 23:14:50
1162
原创 javaweb之servlet中的request对象
一,request与response对象概述request对象和response对象的原理:1, request和response对象是由服务器创建的。我们来使用它们;2, request对象是来获取请求消息,response对象是来设置响应消息;3,request对象继承体系结构:ServletRequest – 接口| 继承HttpServletRequest – 接口| 实现org.apache.catalina.connector.RequestFacade 类(tomcat)二
2020-06-25 01:19:20
153
原创 javaweb之HTTP协议
一,概述概念:Hyper Text Transfer Protocol 超文本传输协议传输协议:定义了客户端和服务器端通信时,发送数据 的格式特点:1 基于TCP/IP的高级协议2 默认端口号:803 基于请求/响应模型的:一次请求对应一次响应4 无状态的:每次请求之间相互独立,不能交互数据历史版本:1.0:每一次请求响应都会建立新的连接1.1:复用连接二,请求消息数据格式1 请求行请求方式 请求url 请求协议/版本GET /test HTTP/1.1请求方式:HTTP协
2020-06-25 00:56:44
67
原创 javaweb之servlet使用
一,概述概念:server applet,运行在服务器端的小程序。本质:Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。将来我们自定义一个类,实现Servlet接口,复写方法。servlet目录结构:二,servlet入门使用快速入门:创建JavaEE项目;定义一个类,实现Servlet接口public class ServletDemo1 implements Servlet实现接口中的抽象方法;import javax.servlet.*;
2020-06-24 11:14:34
199
原创 Javaweb之tomcat服务器
一,web服务器软件服务器:安装了服务器软件的计算机。服务器软件:接收用户的请求,处理请求,做出响应。web服务器软件:接收用户的请求,处理请求,做出响应。在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目。常见的java相关的web服务器软件:1,webLogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。2,webSphere:IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。3,JBOSS:JBOSS公
2020-06-22 16:25:25
105
原创 Javaweb之XML
一,概述1,概念:Extensible Markup Language 可扩展标记语言,标签是自定义的。2,与HTML区别:*xml标签是自定义的,html标签是预定义的;*xml是存储数据的,html是展示数据的;*xml语法严格,html语法松散。3,功能*作为配置文件;*在网络中进行传输。二,语法1,基本语法*xml文档后缀名为.xml;*xml第一行必须定义为文档声明;*xml文档中仅有一个根标签;*属性值必须使用单引号(双引号)引起来;*标签必须正确关闭;*xml标
2020-06-20 17:38:41
113
原创 JDBC之Spring封装JDBCTemplate
一,概述Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发。步骤:1. 导入jar包2. 创建JdbcTemplate对象。依赖于数据源DataSource * JdbcTemplate template = new JdbcTemplate(ds);3. 调用JdbcTemplate的方法来完成CRUD的操作 * update():执行DML语句。增、删、改语句 * queryForMap():查询结果将结果集封装为map集合,将列名作为key,
2020-06-10 21:30:56
346
原创 JDBC之数据库连接池技术
一,概述1,概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。2,好处:节约资源,用户访问更高效。3,实现1, 标准接口:DataSource javax.sql包下的方法:* 获取连接:getConnection()* 归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connectio
2020-06-09 22:40:16
157
原创 JDBC之PreparedStatement对象
一,PreparedStatementPreparedStatement作用:执行预编译的sql语句对象。1,SQL注入:在拼接sql时,有一些SQL的特殊性关键字参与字符串拼接,会造成安全性问题。若输入用户名随意,密码:a’ or ‘a’ = 'a,则有以下sql语句:select * from user where username = 'dfss"and password = “a” or “a” = “a”;查询结果一定存在。2,解决SQL注入问题:采用预编译的SQL语句,参数使用?作为
2020-06-09 16:36:15
450
原创 Java语言之数据库连接JDBC
一,概述概念:Java Database Connectivity,Java数据库连接,用java语言操作数据库。本质:官方(Sun)公司定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这一套接口,提供数据库驱动jar包,我们可使用这套JDBC接口编程,真正执行的代码是jar包中实现的类。使用步骤:1,导入驱动jar包;2,注册驱动;3,获取数据库连接对象Connection;4,获取执行sql语句的对象Statement;5,定义SQL语句;6,执行SQL,接收返回结果
2020-06-09 00:07:00
118
原创 Java语言之注解Annotation
一,概述1,注解(Annotation)概念:也叫元数据,一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。目的:注解就是为了简化开发,避免写过多的代码,不利于程序的扩展以及维护。2,注解分类:编写文档:通过代码里标识的注解生成文档【生成文档doc文档】代码分析:通过代码里标识的注解对代码进行分析,如测试代码【使用反射】编译检查:通过代码里标识的注解让编译器能够
2020-06-06 18:16:55
150
原创 java语言之反射机制
一,概述反射:将类的各个组成部分封装为其他对象,这就是反射机制。反射好处:1,在程序运行过程中,操作此类对象;2,可以解耦,提高程序的可扩展性。二,获取class类对象的方式Java代码运行的三个阶段:获取class类对象的三种方式:1,Class.forName(“全类名”):将字节码文件加载进内存,返回class对象。多用于配置文件,将类名定义在配置文件当中,读取文件,加载类。2,类名.class:通过类名属性class获取,多用于参数的传递。3,对象.getClass():该方法
2020-06-05 00:19:58
82
原创 java语言之Junit单元测试
一,概述测试分类:1,黑盒测试:给输入,看输出,忽略细节;2,白盒测试:关注程序具体的执行流程。其中Junit单元测试就是白盒测试中的一种。二,Junit单元测试步骤:1,定义一个测试类(测试用例)包名:xxx.xxx.test;类名:被测试类名Test。2,定义测试方法:可独立运行方法名:test测试方法名;参数:空参数;返回值:void。3,给各个测试方法上方加@Test注解4,导入Junit依赖环境测试判断:一般使用断言操作来处理结果,如Assert.assertEq
2020-06-04 23:33:09
153
原创 Java语言之方法引用
一,概述双冒号 :: 为引用运算符,而它所在的表达式被称为方法引用。如果Lambda要表达的函数方案已经存在于某个方法的实现中,那么则可以通过双冒号来引用该方法作Lambda的替代者。使用方法引用的前提:抽象方法方法体中的代码已经有了现成的实现(对象或者类),那就是 System.out对象中的 println(String) 方法。例子:System.out 对象中有一个重载的 println(String) 方法恰好就是我们所需要的。那么对于printString 方法的函数式接口参数,对比下
2020-05-29 22:20:32
171
原创 Java语言之Stream流
一,概述Stream流是jdk1.8之后出现的,该流关注做什么,而不是怎么做。使用该流可遍历集合,对集合中的数据进行过滤。流式思想:整体来看,流式思想类似于工厂车间的“生产流水线”。当需要对多个元素进行操作(特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个“模型”步骤方案,然后再按照方案去执行它。Stream操作还有两个基础的特征:1,Pipelining: 中间操作都会返回流对象本身。 这样多个操作可以串联成一个管道, 如同流式风格(fluent style)。 这样做可以对操作
2020-05-27 21:09:04
548
原创 Java语言之函数式接口
一,概述1,函数式接口:有且只有一个抽象方法的接口,可以用其他方法(静态、默认、私有)。2,@FunctionalInterface注解:在接口上添加,可用于检测接口是否是一个函数式接口。是则编译成功,否则编译失败(无抽象方法或抽象方法多余一个)。3,函数式接口的使用:一般可以作为方法的参数和返回值类型。若有用到函数式接口,则可用Lambda表达式。@FunctionalInterfacepublic interface DemoFuntionalInterface { public ab
2020-05-27 14:23:54
129
原创 Java语言之网络编程
一,网络通信协议软件结构:1,C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。2,B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。协议中对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守,最终完成数据交换。TCP/IP协议: 传输控制协议/因特网互联协议( Transmissi
2020-05-22 20:01:10
489
原创 Java语言之打印流PrintStream
一,PrintStreamjava.io.PrintStream:打印流,为其他输出流添加了功能,使他们能够方便地打印各种数据值表示形式。特点:1,只负责数据的输出,不负责数据的读取。2,与其他流不同,PrintStream永远不会抛出IOException。3,有特有的方法:print/printlnvoid print(任意类型的值);void printlnI(任意类型的值并换行)构造方法:1,PrintStream(File file):输出目的地是一个文件。2,PrintStr
2020-05-21 18:17:09
143
原创 Java语言之对象序列化流、反序列化流
一,概述1,对象的序列化:把对象以流的方式写入到文件中保存,即写对象,对象不仅包含字符,也有字节,使用字节流ObjectOutputStream。2,对象的反序列化:把文件中保存的对象,以流的方式读取出来,读取的文件保存的都是字节,使用字节流ObjectInputStream。二,ObjectOutputStreamjava.io.ObjectOutputStream extends OutputStream.OutputStream:对象的序列化流。作用:把对象以流的方式写入到文件中保存。构
2020-05-21 15:54:20
187
原创 Java语言之转换流
一,字符编码和字符集编码:按照某种规则,将字符存储到计算机中;解码:,将存储在计算机中的二进制数按照某种规则解析显示出来。字符编码 : 就是一套自然语言的字符与二进制数之间的对应规则。字符集:也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。常见字符集:1,ASCII字符集:主要包括控制字符(回车键、退格、换行键等)和可显示字符(英文大小写字符、阿拉伯数字和西文符号);2,GBK字符集:最常用的中文码表。是在GB2312标准基础上的扩展规范,使用了双字节编
2020-05-21 11:25:59
123
原创 Java语言之字符缓冲流
一,字符缓冲输出流BufferedWriterjava.io.BufferedWriter extends Writer.BufferedWriter:字符缓冲输出流,提高字符写入效率。继承父类的共性成员方法:1,void write(int c)2,void write(char[] cubf)3,void write(char[] cubf,int off, int len)4,void write(String str)5,void write(String str,int off,i
2020-05-20 23:03:12
112
原创 Java语言之字节缓冲流
一,概述缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStreamBufferedOutputStream字符缓冲流:BufferedReaderBufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。二,字节缓冲输出流java.io.BufferedOutputStream extends Outpu
2020-05-18 17:56:34
1071
原创 Java语言之属性集Properties类
一,概述java.util.Properties 集合 extends Hashtable<k,v> implements Map<k,v>。Properties 类表示了一个持久的属性集,Properties可保存在流中或从流中加载。Properties 集合是一个唯一与IO流相结合的集合。可使用Properties集合中的store方法,把集合中的临时数据,持久化写入到硬盘中存储;可使用Properties集合中的load方法,把硬盘保存的文件(键值对),读取到集合中使用。
2020-05-18 12:00:44
156
1
原创 Java语言之文件读写异常处理
一,JDK7之前处理方式利用try{可能会出现异常的代码;}catch(异常类 变量名){处理异常的代码;}finally{无论是否有异常,均会执行的代码;}import java.io.FileWriter;import java.io.IOException;public class DemoTryCatchWriter { public static void main(String[] args) { FileWriter fw = null;
2020-05-17 14:45:01
1963
原创 Java语言之FileReader、FileWriter
一,字符输入流Readerjava.io.Reader,是字符输入流的最顶层父类,定义了一些共性对成员方法,是一个抽象类。共性成员方法:int read():读取单个字符并返回;int read(char[] cubf):一次读取多个字符,将字符读入数组;void close(): 关闭输入流并释放资源。二,文件字符输入流FileReaderjava.io.FileReader extends InputStreamReader extends Reader.FileReader:文件字符输
2020-05-17 13:37:30
126
原创 Java语言之文件字节输入流FileInputStream
一,字节输入流InputStreamjava.io.InputStream,字节输入流,此抽象类是表示字节输入流的所有类的超类。子类共有方法:1,int read():从输入流中读取数据的下一个字节,读取到末尾返回-1。2,int read(byte[] b):从输入流中读取一定数量的字节并将其存储在缓冲区数组b中。参数byte[],起到缓冲作用,存储每次读取到的多个字节;返回值int,是每次读取的有效字节数。3,void close():关闭输入流并释放与该流关联的所有系统资源。二,文件
2020-05-16 22:17:28
171
原创 Java语言之文件字节输出流FileOutputStream
一,概述1,IO流概念:I:input,输入,即把硬盘中的数据读取到内存中使用,也叫读取;O:output,输出,把内存中的数据写入到硬盘当中保存,也就写入;流:即数据(字符、字节),1字符=2字节,1字节=8位。2,一切皆字节。一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。二,字节输出流OutputStream
2020-05-16 16:34:11
593
原创 Java语言之递归、文件过滤器
一,递归递归:指在当前方法内调用自己的这种现象。递归使用前提:当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归。递归的分类:递归分为两种,直接递归和间接递归。1,直接递归称为方法自身调用自己。2,间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。注意事项:1,递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。2,在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。3,构造方法,禁止递归。否则会出现编译报错。构造方法是创
2020-05-16 10:51:02
102
原创 Java语言之File类
一,概述java.io.File类是文件和目录路径名的抽象表示形式,java把电脑中的文件/文件夹封装为一个File类。我们可以使用File类对文件和文件夹进行操作:创建、删除、获取、判断是否存在、对文件夹进行遍历及获取文件大小。注意:File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法。二,静态成员变量static String pathSeparator: 路径分隔符,字符串形式。static Char pathSeparatortoChar: 路径分隔符的字符形式。stat
2020-05-15 12:25:59
108
原创 Java语言之Lambda表达式
一,概述面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情。函数式编程思想:只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程。二,Lambda表达式Lambda表达式标准格式(JDK1.8之后):由三部分组成:1,一些参数;2,一个箭头;3,一段代码。格式:(参数列表)->{一些重写方法的代码};格式说明:():接口中抽象方法的参数列表,无参数就空着,有参数就写出参数,多个参数使用逗号隔开;->:把参数传给方法体;
2020-05-10 19:28:08
79
原创 Java语言之线程池
一,概述我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。线程池作用:使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务。合理利用线程池能够带来三个好处:1,降低资源
2020-05-10 11:27:12
116
原创 Java语言之线程间的通信
一,线程的五种状态1,NEW:至今尚未启动的线程处于这种状态。2,RUNNABLE: 正在Java虚拟机上运行的线程处于这种状态。3,BLOCKED:阻塞状态,受阻塞并等待某个监视器锁的线程处于这种状态。4,TIMED_WAITING:休眠(睡眠)状态,计时等待。5,WAITING:无限期等待另一个线程来执行某一特定操作(notify)的线程处于这种状态。6,TERMINATED:已退出的线程处于这种状态。二,Waiting(无线等待状态)线程间通信概念:多个线程在处理同一个资源,但是处理
2020-05-09 16:58:57
172
1
原创 Java语言之线程安全、同步机制
一,线程安全问题单线程程序不会出现线程安全问题;多线程程序,没有访问共享数据,不会产生问题;多线程访问共享数据,会产生线程安全问题。线程安全问题产生原因:线程抢夺CPU的执行权,谁抢到谁执行。注意:线程安全问题是不能产生的,我们可让一个线程在访问共享数据时无论是否失去CPU执行权,都让其他线程只能等待,等待当前线程买完票,其他线程再进行卖票,以保证当前只有一个线程在卖票。public class RunnableImpl implements Runnable { private int
2020-05-08 17:52:57
102
原创 Java语言之多线程创建
主线程:执行主(main)方法的线程。JVM执行main方法,main方法会进入到栈内存,JVM会找操作系统开辟一条main方法通向CPU执行路径,CPU就可以通过这个路径来执行main方法,而这个路径叫main(主)线程。单线程:Java程序中只有一个线程,执行从main方法开始,从上到下依次执行。一,创建多线程的两种方式一,创建Thread类子类java.lang.Thread类:是...
2020-05-07 21:47:00
182
原创 Java语言之进程线程相关概念
一,并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。二,线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序...
2020-05-07 13:38:37
54
原创 Java语言之异常处理的两种方式
一,throws关键字异常处理的第一种方式,声明异常,交给别人处理。作用:当方法内部抛出异常对象的时候,我们必须处理这个异常对象。可使用throws关键字处理异常对象,会把异常对象抛出给方法的调用者处理(自己不处理,给别人处理),最终交给JVM处理(即中断处理)。使用格式:在方法声明时使用。修饰符 返回值类型 方法名(参数列表) throws AaaException,BbbExcept...
2020-05-06 20:51:02
1520
原创 Java语言之异常
指的是程序执行过程中,出现的非正常情况,最终会导致JVM的非正常停止。在Java等面向对象编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出一个异常对象。java处理异常的方式是中断处理。**注意:**异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行。1,概述java.lang.Throwable类:是java语言中所有异常或所有错误的超类。1,E...
2020-05-06 15:04:24
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人