- 博客(29)
- 资源 (6)
- 收藏
- 关注
原创 cookie创建的三个参数(有效期+有效路径+httponly)
1.创建cookie对象+ URLEncoder.encode转码1.1有效期:setMaxAge();可通过web.xml设置或者在servlet中设置<!-- 使用配置文件修改session的有效期--> <session-config><!-- 单位是分钟--> <session-timeout>10</session-timeout> </session-config>
2020-08-31 20:36:02 1614
转载 encodeRedirectURL与encodeURL作用
session对象能和客户建立意义对应的关系依赖于客户的浏览器是否支持cookie,如果客户的浏览器不支持的话,那么客户再不同网页之间的session对象可能时互不相同的,因为服务器无法将ID存放到客户端,就不能建立session对象和客户的一一对应关系。可以通过URL重写来实现session对象的唯一性。所谓URL重写就是当客户从一个页面重新连接到一个页面时,通过向这个新的URL添加参数,把session对象的id传过去,这样能够保证session对象是完全相同的。可以使用response对象调用enco
2020-08-31 19:45:39 1444
原创 使用servlet完成简单的登录功能(servlet与html之间跳转(重定向))
1.新建web项目直接在web下面创建html文件2.login.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>login</title></head><body><h2>用户登录</h2><form action="login" method="p
2020-08-29 17:25:19 2622 4
原创 创建Servlet的几种方式+web.xml中关于servlet的一些配置+浏览器、服务器交互Postman测试
1.继承Servlet接口,重写servlet方法package d01;import javax.servlet.*;import java.io.IOException;import java.util.Date;/** * zt * 2020/8/28 * 10:53 */public class MyServlet implements Servlet { /** * 初始化servlet,只执行一次 * @param servletConfig
2020-08-28 15:13:58 571
原创 测试是否链接Tomcat服务器成功
1.下载Tomcat2.打开startup.bat,浏览器访问http://localhost:8080/3.访问成功
2020-08-27 11:11:45 715
原创 初步使用Druid连接池+代码示例:对图书进行增删改查
1.创建数据库,向里面添加数据数据库名:BookShop#用户表 CREATE TABLE USER( id INT(11) PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, PASSWORD VARCHAR(32) NOT NULL, realname VARCHAR(20), email VARCHAR(50) NOT NULL, gender VARCHAR(50) NOT NULL,flag INT(11), role IN
2020-08-24 22:39:27 1101
原创 自己封装数据库工具类
1.代码package d04_dbutils;import java.io.InputStream;import java.sql.*;import java.util.Properties;/** * zt * 2020/8/20 * 15:53 * 封装数据库工具类 * 1.注册驱动 * 2.获取连接 * 3.关闭资源 * ------------------------------ * 4.执行命令(增、删、改) * 5.查询 * 6.事务操作 */publi
2020-08-20 19:33:52 210
原创 PreparedStatement连接数据库实现登录验证,避免sql注入问题
一、代码package d03_system;import java.sql.*;import java.util.Scanner;/** * zt * 2020/8/20 * 14:19 * 1.注册驱动(可省略) * 2.创建链接 * 3.创建命令 * 4.执行命令 * 5.关闭资源 * * PreparedStatement pstat = conn.prepareStatement("select * from user where name=? and passwo
2020-08-20 15:50:56 385
原创 使用prepareStatement连接数据库实现增、删、改、查
一、代码自己建的数据库表如下图:package d03_system;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;/** * zt * 2020/8/20 * 15:05 * 使用prepareStatement实现增、删、改、查 */public class JdbcDemo5 {
2020-08-20 15:44:50 541
原创 垃圾回收
1.垃圾回收1.1垃圾判定没有任何引用指向的对象,称为垃圾。算法:1.引用计数算法 2.可达性分析算法(java):通过一系列的GC Root对象为起点进行索引,没有任何引用链项链的对象就是不可用的,此算法解决了循环引用问题。GC Root包含下列这几种1.虚拟机栈中引用的对象2.静态属性对象3.方法区中常量引用对象–>字符串常量池里的引用4.本地方法栈中JNI(Native方法)引用的对象5.synchronized锁对象6.Class对象...
2020-08-18 10:05:54 104
原创 Lambda什么时候使用+简化匿名内部类
1.简化匿名内部类Lambda可以简化的内容: 1.lambda中如果只有一条语句,可以把{}省略掉,如果有返回值return也省略掉 2.参数列表中的类型是可以推断出来的,所以可以省略 3.方法引用简化: Comparator<String> comparator = String::comparaTo;2.代码package d01_lamda;import java.util.Comparator;/** * zt * 2020/8/13 * 9:42
2020-08-13 10:05:09 263
原创 单例模式-->饿汉式+懒汉式
一、概述单例模式:要求整个程序只有一个对象 * 三步骤:1.私有化构造方法 * 2.在类的内部创建一个对象 * 3.通过公开的方法,返回这个对象1.饿汉式/* *饿汉式:类一加载,对象就初始化 * 缺点:生命周期太长,浪费空间 * 有点:线程安全 * /public class SingleTon { //1.私有构造方法 private SingleTon(){} //2.在类的内
2020-08-12 21:57:56 122
原创 类对象 与 类的对象
类对象Class<?> class1 = Class.forName("d01_student.Student");类的对象(new)Class<?> class1 = Class.forName("d01_student.Student");Student stu1 = (Student) class1.newInstance();
2020-08-12 20:37:03 594
原创 反射:Reflect(获取类对象三种方法)
1.反射获取对象的三种方法推荐方式三(因为前两种方式编译的时候都要求有Student类,此方式不需要,没有也不会报错)1.获取类对象 1.方式一:对象获取 2.方式二:类名.class 3.方式三:class.forName(),(推荐)2.代码//反射操作1,获取类对象三种方式 public static void reflecOp1() throws Exception { //1.获取类对象 //1.1方式一:
2020-08-12 20:29:55 2162
原创 三次握手与四次挥手+图解
三次握手(链接的建立)客户端与服务器均处于未连接状态,并且是客户端主动向服务器请求建立连接1.1为什么要第三次握手?确定服务器也可以向客户端发送数据2.四次挥手(连接的释放)客户端与服务器均处于连接建立状态,客户端主动断开连接2.1为什么中间服务器要两次连续发送数据(2、3)因为要进行关闭等待...
2020-08-11 20:02:20 148
原创 使用NIO实现非阻塞式(相对的)多人聊天室
1.服务端package d02_test;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocketChannel;import java.nio.chan
2020-08-11 19:46:15 181
原创 UDP实现多人聊天室
概述先运行接收方,避免收不到一开始的数据造成数据丢失1.接收方Receiverpackage d03_chat;import java.net.DatagramPacket;import java.net.DatagramSocket;/** * zt * 2020/8/11 * 10:13 * 接收方 * * System.out.println(dp.getAddress().getHostAddress()+":"+data); * getAddress方法和getHos
2020-08-11 10:47:04 1357
原创 java使用TCP,由客户端向服务端传输图片,(电脑与电脑)或(同一台电脑)
概述1.完成图片的复制,与客户端向服务端传输文字相差不大。都是: 1.1基于TCP协议的服务器端 1.创建服务器套接字,绑定端口号(new ServerSocket(1008)) 2.侦听客户连接,返回socker(listener.accept()) 3.获输入、输出流 4.处理数据 5.关闭资源 1.2基于TCP协议的客户端 1.创建客户端套接字,指定服务器的地址和端口号
2020-08-10 21:11:00 390
原创 java实现客户端服务端互发消息并接收
一、总的来说,先了解它们的组成部分基于TCP协议的服务器端 1.创建服务器套接字,绑定端口号(new ServerSocket(1008)) 2.侦听客户连接,返回socker(listener.accept()) 3.获输入、输出流 4.处理数据 5.关闭资源 基于TCP协议的客户端 1.创建客户端套接字,指定服务器的地址和端口号 2.获输入、输出流
2020-08-10 18:36:06 3006 4
原创 序列化与反序列化Serializable,Externalizable
1.代码Demo3测试类/* * zt * 2020/8/8 * 15:34 *序列化:把Person对象写入硬盘中 要求:1.序列化的类必须是Serializable自动或者Externalizable手动序列化接口 2.序列化的类要添加一个私有的long类型静态常量serialVersionUID,保证序列化的类反序列化的类是同一个类。 (1)使用transient修饰的属性,不可以序列化 (2)静态属性不能序列化 面试题:使用transi
2020-08-08 16:21:00 208
原创 将一个txt文件,复制到另一个txt文件中(缓冲字节流(BufferedInputStream,BufferedOutputStream))
1.代码package d04_test;/* * zt * 2020/8/8 * 15:07 *使用缓冲字节流实现复制文件(BufferedInputStream) */import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;public class Demo1 {
2020-08-08 15:27:07 1105
原创 用缓冲字节流,复制一个照片
1.代码package d01_TestInput;/* * zt * 2020/8/7 * 12:02 *边读边写 */import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;public class CopyFiel { public static void m
2020-08-07 12:23:44 538 1
原创 缓冲字节输出流BufferedOutputStream
1.代码package d01_TestInput;/* * zt * 2020/8/7 * 11:36 * */import java.io.BufferedOutputStream;import java.io.FileOutputStream;public class TestBufferedOutputStream { public static void main(String[] args) throws Exception { //创建缓冲字节输出
2020-08-07 11:55:53 173
原创 缓冲字节输入流BufferedInputStream
1.在e盘下创建aaa.txt1.代码package d01_TestInput;/* * zt * 2020/8/7 * 11:31 * */import java.io.BufferedInputStream;import java.io.FileInputStream;public class TestBufferedInputStream { public static void main(String[] args) throws Exception {
2020-08-07 11:51:21 197
原创 使用文件字节输出流FileOutputStream写入文件
1.代码package d01_TestInput;/* * zt * 2020/8/7 * 11:11 * */import java.io.FileOutputStream;public class TestFileOutputStream { public static void main(String[] args) throws Exception { //1.创建流 FileOutputStream fos = new FileOutp
2020-08-07 11:30:47 453
原创 使用文件字节输入流FileInputStream读取文件
1.在e盘下创建aaa.txt文件2.代码package d01_TestInput;/* * zt * 2020/8/7 * 10:33 * */import java.io.FileInputStream;public class Test1 { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("e:\\
2020-08-07 10:51:57 334
原创 在控制台,递归显示文件夹下所有文件目录代码+ 运行结果
1.用递归方式显示文件夹------->效果图代码实现package TestFile;/* * zt * 2020/8/6 * 17:46 *递归显示文件夹 */import java.io.File;public class Demo1 { public static void main(String[] args) { listDir(new File("e:\\aaa"), 0); } public static void lis
2020-08-06 18:02:27 439
原创 文件操作与文件夹操作
1.文件操作package TestFile;/* * zt * 2020/8/6 * 16:47 * 文件操作 1.创建文件 2.删除文件 3.获取信息 4.判断 5.修改名字 */import java.io.File;import java.io.IOException;import java.sql.Date;public class FileOperate { public s
2020-08-06 17:40:46 172
原创 二叉查找树代码java+运行结果
1.代码package TestTree;/* * zt * 2020/8/3 * 14:41 *二叉查找树: */public class BinarySortTree { //根节点 private Node root; //元素个数 private int size; public int getSize() { return size; } //添加元素 public void add(int v
2020-08-04 10:32:27 566
RDB持久化机制: - RDB默认开启 - RDB存储二进制数据
2020-11-05
Redis的其他命令
2020-11-05
《Nginx介绍:配置+使用》
2020-11-05
Docker&Nginx
2020-11-05
《docker详解:配置+使用》
2020-11-05
Linux环境搭建VMware+xterm
2020-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人