自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2023.2.27日学习内容(spring)

Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。提供了展现层 SpringMVC和持久层 Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。依赖,聚合,组合,继承,关联。2,spring的优点。

2023-03-01 19:07:57 69

原创 2023.2.17日学习内容(session认证)

form.on('submit(add)',function(data){//data拿到form表单。所以在登录成功以后可以设定一个标识符,在其他页面访问的时候,查看当前标识符是否存在即可。判断登录用js来操作,因为每一个页面都有myAjax.js文件,则直接写到里面即可。对前端js里面到处都在使用ajax,所以可以考虑将ajax的代码提取到公共的js。所以在后台应该有一个登录标识,判断是否已经登录,而且应该拦截所有访问后台的接口地址。当用户访问页面的时候,判断用户是否已经登录即可?

2023-02-20 16:52:36 87

原创 2023.2.16日学习内容(产品的增删改查)

3:修改div属性赋值 $("#demo1").attr("src", data.imgHref)4)只要涉及到页面赋值,则需要重新渲染数据:form.render();1:input 表单赋值 $("#id").val(data.cuisineId);2:div 赋值 $("#id").html(data.cuisineId);6)加载先后顺序的问题:先加载菜系,然后根据id查询,然后赋值到页面,然后渲染。1)对于有多个表,则需要在页面加载时先加载另一个表的数据(菜系)3:将需要修改的数据赋值到页面。

2023-02-20 16:48:21 74

原创 2023.2.15日学习内容(用户的增删改查)

5对于复选框,得不到值$("input[type=checkbox][name=hobby]:checked").each(function (index, obj) {* 4:ajax需要添加一个id *-------------------------------------------------* 9.点击编辑按钮,弹出编辑页面:一般情况下不要和密码一起修改。* 新增:表单得到里面的值,复选框难一点:数组和字符串相互转换。* 删除:工具栏监听,提示是否删除,调用ajax。

2023-02-20 16:42:30 91

原创 2023.2.14日学习内容(js代码)

对象:let arr={name="aa",age = 11} ,数组:let array=[1,"a",{name="aa",age = 11},true](数组内可以存所有数据类型)3,数字:let num =1,字符let str="a"或者 let str='a'(单双引号都可以),布尔 :let a=true。4,JSON对象转字符串:JSON.stringify(),字符串转JSON对象:JSON.parse()2,js用let定义变量,用const定义常量。7,html和val的区别?

2023-02-15 14:16:24 48

原创 2023.1.13日学习内容(封装相同类与方法)

后台管理系统每个对象要做一次增删改查,当对象比较多的时候有很多重复代码,接下来就将可以提取的代码封装到类或者方法中。使用BaseDao接口,后面对象的Dao层直接继承此接口,如新闻对象的增删改查。2 BaseService接口。4 获取数据库信息的方法。1,BaseDao接口。3 过滤器筛选的方法。

2023-02-14 14:37:46 51

原创 2023.2.10日学习内容(后台管理系统的增删改查)

9拼接sql语句,在数据库进行操作,得到返回的结果集(Dao)4逻辑判断(用接口的形式)(Servlet)8传入Dao层与数据库比对(Service)11根据返回的结果判断(Service)5创建类返回DTO(Service)10重置model使其非空(Dao)3将结果返回给前端(Servlet)2 得到前端数据(Servlet)12得到返回值(Servlet)3封装到VO(Servlet)1乱码处理(Servlet)6验证密码(Service)7加密密码(Service)

2023-02-13 19:56:52 63

原创 2023.2.9日学习内容

1)创建LoginServlet类,完成六大步骤(乱码处理,获取前端数据,将数据封装到对象,将对象传到逻辑处理层处理,得到逻辑处理的返回值,将最终结果返回给前端),在Servlet中可以完成前三步。2)创建UserService类,封装到对象后的逻辑需要创建一个UserService类将从前端得到的用户名跟密码进行处理,例如加密处理,验证码生成与验证,处理后将数据发送给dao层。3)创建userDao类,连接数据库并且遍历选中的表,与处理后的数据进行比较,将比较的结果返回给UserService层。

2023-02-09 19:53:00 43

原创 2023.2.8日学习内容

INSERT INTO 添加数据:直接添加类似于全参构造方法。INSERT INTO 添加数据:选取某些属性添加。AND & OR 逻辑与,逻辑或。ORDER BY 排序。

2023-02-09 19:37:08 32

原创 2023.2.7日学习内容(创建后台管理系统项目)

servlet包,Lombok包,io流包(文件上传),mysql数据库包,json包。varchar(45) 存入多少数据就创建一个多大的数组单数不超过45。char(45),创建一个长度45的数组,未存入数据的地方占用内存。char用于固定长度(长度差不多) 255之内的字符。4,char(45)和varchar(45)的区别?3,char,varchar,text的区别?6.创建web的包(web目录结构的包)2,mysql的数据类型对应java。5.创建Java的包(三层架构的包)

2023-02-07 19:21:37 44

原创 2023.2.6日学习内容(filter和session)

4、但在 Filter.doFilter 方法中不能直接调用 Servlet 的 service 方法,而是调用 FilterChain.doFilter 方法来激活目标 Servlet 的 service 方法,FilterChain 对象时通过 Filter.doFilter 方法的参数传递进来的。5、只要在 Filter.doFilter 方法中调用 FilterChain.doFilter 方法的语句前后增加某些程序代码,这样就可以在 Servlet 进行响应前后实现某些特殊功能。

2023-02-07 19:11:08 73

原创 2023.2.3日学习内容(jsp的修改与删除)

不能直接访问页面,因为页面的数据属于静态,则数据应该从Java后台来 所以,只能访问Java后台,通过将查询出来的数据响应给前端(页面转发)用户直接访问Java后台的注解地址:正常情况下,这里面应该有六个步骤并且不需要得到前端的值和封装到model。C:controller 控制层 Servlet层 接收页面数据(请求)和返回页面数据(响应)5)在service里面处理逻辑关系(将得到的数据保存到数据容器里面(集合list))数据访问层:dao 处理数据的地方(存储数据的地方)

2023-02-06 15:48:42 142

原创 2023.2.2日学习内容(jsp的添加)

1)因为所有的数据属于动态数据,则数据应该从Java后台来,所以,第一次访问直接访问Java后台的servlet注解。6.如果返回查询页面,则可以直接通过注解跳转到/show的servlet进行查询。2)在servlet里面查询出所有数据,并存入req作用域,进行页面转发。3.在Java后台得到品牌信息,封装后进入逻辑层(service)5.增加成功后应该返回成功页面:也可以直接返回到查询所有页面。4.在逻辑层处理增加信息,增加到一个集合的容器里面。1.打开查询页面,点击新增按钮,跳转到新增页面。

2023-02-06 14:52:56 64

原创 2023.2.1日学习内容(Servlet简单应用)

servlet简单应用

2023-02-01 14:50:47 49

原创 2023.1.31日学习内容(web)

B/S 架构:Browser/Server,浏览器/服务器 架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。4,以后查询一般用doget,更新(增加,修改,删除)一般用doPost,涉及到密码等敏感信息则用doPost,设计到IO流用doPost。无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全。

2023-01-31 19:53:46 39

原创 2023.1.30日学习内容(多线程接收,发送文件)

outputStream.write("发送完毕".getBytes(StandardCharsets..println(ThreadName + "连接成功,准备接受文件");服务器端可以接收多个客户端传文件,并不是等待传送结束后再开启新的传送。.println(ThreadName + "正在等待连接");.println("接受完毕,发送接受完毕给客户端");.println("连接成功,输入1传输文件");.println("客户端正在启动");.println("服务器端启动");

2023-01-31 19:45:55 123

原创 2023.1.13日学习内容(小知识)

优先级:main方法静态代码块>调用父类的静态代码块>子类的静态代码块>调用父类的构造代码块>调用父类的构造方法>子类的构造代码块>子类的构造方法。1.先执行类的静态代码块后执行类的main方法,说明要执行类的方法需要先加载这个类。所以先执行父类的构造代码块和构造方法,再执行子类的构造代码块和构造方法。3.静态变量赋值和静态代码块都会在类加载的时候执行,执行顺序与静态变量和静态代码块出现的先后顺序一致。4.如果在类的静态代码块执行之前创建该类的对象,则会先执行该类的构造代码块和构造方法。

2023-01-31 09:23:34 45

原创 2023.1.12日学习内容(石头剪刀布小游戏)

将石头,剪刀或者布发给服务器,等待服务器进行比较,服务器比较后接收结果。将接收到的信息与自己的信息进行比较,将结果返回给客户端。.println("传输成功,正在等待对手出手");.println("传输成功,正在等待对手出手");String lose = "你输了";.println("请输入你伸出的手指数");String win = "你赢了";.println("请输入你伸出的手指数");String pin = "平局";

2023-01-31 09:08:41 88

原创 2023.1.11日学习内容(小知识)

1,类不一定要显示定义构造函数,构造函数的返回类型是类本身,一个类可以定义多个构造函数,如果构造函数不带任何参数,那么构造函数的名称必须和类名相同。split():分割字符串,返回一个分割后的字符串数组。getBytes():返回字符串的 byte 类型数组。toLowerCase():将字符串转成小写字母。toUpperCase():将字符串转成大写字符。indexOf():返回指定字符的索引。charAt():返回指定索引处的字符。substring():截取字符串。length():返回字符串长度。

2023-01-30 19:42:43 36

原创 2023.1.10日学习内容(反射的常用方法)

StudentDemo student = (StudentDemo) constructor.newInstance("张三", 23);返回值用Object接收,参数的值为2004,若无参数则{ }为空,前提是方法就是无参方法。StudentDemo{name='张三', age=23}StudentDemo{name='李四', age=23}StudentDemo{name='李四', age=12}可以看到展示成员变量时,展示了其两个私有变量name与age。return "属猴";

2023-01-11 10:11:00 32

原创 2023.1.9日学习内容(反射)

StudentDemo student= (StudentDemo) constructor.newInstance("张三",23);.println("学习的科目是: " + name + "学习的时间是:" + time);先选定调用的类的位置,获取Student类的构造方法,利用构造方法实例化对象,输出对象信息。2)通过Object类的成员方法getClass()方法获取。3)通过Class.forName("带包类名")方法获取。.println("学习");1,获取字节码对象的三种方式。

2023-01-10 19:56:38 32

原创 2023.1.6日学习内容(udp与tcp)

三种传输方式在传输端没有区别,而在接收端上,单播与广播的ip地址不同,组播则需要接收端加入一个组。只要跟文件有关就是FileInputStream或FileOutputStream,其余就用。客户端i:本地文件夹,o:网络。服务端i:网络,o:本地文件夹。3,tcp传文件,客户端代码。udp的接收代码(单播)1,upd的三种传输方式。2,udp的传输代码。

2023-01-09 19:44:48 47

原创 2023.1.5日学习内容(遍历文件夹升级版)

2,注意读内容时每行每行的读,若不是每行每行的读就会产生拼接的情况,为了提高准确性就要用到BufferedReader字节缓冲流的特有方法readLine(),readLine()的返回值时一个String集合,而read则是int类型。2)遍历每个盘的内容,如果选中的是文件,就记录文件的名称到集合中,如果选中的是文件夹就再次遍历(若文件夹为空则会出现空指针异常,就要用到我们上面提到的方法来判断是否为空文件夹)1,注意选中内容的三个状态,是文件,是空文件夹,是有内容的文件夹。2,代码实现一个本地文件搜索。

2023-01-06 13:58:48 48

原创 2023.1.4日学习内容(遍历文件夹)

/输出的地址是参数传来的路径+\\+此文件名 "D:\\test1"+"\\"+"新建 BMP 图像.bmp"//将新创建的文件夹,和此文件夹的地址作为参数返回,此文件夹的地址就是我们新传文件的地址。//输入的地址是此文件的绝对路径 "D:\\test\\新建 BMP 图像.bmp".println("后缀名为:" + s + "有" + i + "个"));.println("该文件不是文件夹或该文件夹为空,不再进入");.println("请输入想要复制的文件路径");//遍历该地址下的的文件。

2023-01-05 10:34:45 52

原创 2023.1.3日学习内容(map统计升级版)

这里使用了递归,查找输入的地址下面文件是否为文件夹,如果是文件,就添加到map里计数,如果是文件夹,就进入该地址再次遍历。System.out.println("请输入您查找的地址");2,将map统计加入到统计文件夹中文件后缀的个数。统计输入的字母a有几个b有几个等等。1,map集合如何统计。

2023-01-04 10:35:45 51

原创 2022.12.30日学习内容(IO流)

就是这个byte[] b, int off ,int len的方法,如果采用直接输入byte[] b的方法,若是数组的长度不为复制内容的约数,就会发生多复制的情况。2,在用代码复制时,若是采用先把复制的内容放进数组里,复制一定要采用内容+复制开始的地方+复制的个数的方法。

2023-01-03 16:40:07 40

原创 2022.12.29日学习内容(小知识,分词器)

Set zName = map.entrySet().stream().filter(s -> s.getKey().getName().startsWith("张")).collect(Collectors.toSet());//定义后指针的位置,两个指针中间的字符将是我们截取的对象,两个指针数值不相同并且前指针比后指针小时才能截取字符。//将相同的字符添加到一开始创建的集合中。//判断截取的字符在词库中是否出现。//截取两个指针中间的字符。

2022-12-29 19:17:22 89

原创 2022.12.28日学习内容(map的三种遍历方式,值为对象的遍历方式)

System.out.println(entry.getKey().getAge() + "岁的" + entry.getKey().getName() + "--" + entry.getValue());map.forEach((key, value) -> System.out.println(key.getAge() + "岁的" + key.getName() + "--" + value));2,若map遍历时,键的值为一个对象,则遍历的代码为。2)用键值对获取键与值遍历。

2022-12-28 19:08:55 49

原创 2022.12.27日学习内容(map遍历,map的统计功能)

1,HashMap双列集合,第一列是key,第二列是value,key的类型与set的类型一样,不能重复,而value的类型可以重复,类型则为colloection,如果想获得键(key)的集合,则用keySet,想获得值(value)的集合,则用户values,如果想获得键值对的集合,则用entrySet方法,代码如下。map.put("1","张三");map.put("2","李四");map.put("3","王五");{1=张三, 2=李四, 3=王五}[1=张三, 2=李四, 3=王五]

2022-12-27 19:54:37 30

原创 2022.12.26日学习内容(set集合重写比较器)

2,当用TreeSet添加了多个数据,如果不重写compareTo方法,则会报错,重写compareTo方法需要在javabean对象的class添加一个接口,如下。重写的规则:先比较书的价格,如果书的价格相同再比较名字是否相同,名字相同则不存入,代码如下,对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点;如果一个节点没有子节点或者父节点,则该节点相应的指针属性值为。如果某一个节点是红色,那么它的子节点必须是黑色。每一个节点或是红色的,或者是黑色的。视为叶节点,每个叶节点。

2022-12-26 19:54:05 52

原创 2022.12.24日学习内容(小知识)

6,从集合中筛选集合的时候,若是调用了带返回值的方法,应该创建两个集合,一个集合是原集合,另一个集合是筛选出来的集合,创建一个筛选方法,把返回值用第二个集合接着,代码如下。if (s.getAge() > 18 && s.getName().contains("张")) {//将结束时间转换为毫秒值。list.add(new Student(103, "张三丰"));list.add(new Student(38, "张翠山"));1,计算格林尼治时间到指定时间的毫秒值,用来验证是否在指定时间内。

2022-12-24 16:24:39 41

原创 2022.12.23日学习内容(SimpleDataFormat类的常用方法,集合的高级用法)

2)LinkedList的查询慢,增删快,因为它是链表,增加与删除的时候只需要让指针指向新的地址就可以完成增加或删除,而查找的时候需要通过头节点或者末节点一个一个的查询到你需要的节点。1)ArrayList的查询快,增删慢,因为它是在数组里开辟一个空间,每次增加与删除的时候,后面的数据都会相应的向前移动一位(或向后移动一位),而查找的时候直接通过下标找到。2,集合不支持存贮基本数据类型,想要储存的话要进行包装。3,ArrayList与LinkedList的区别。如果想转回字符串的形式。

2022-12-24 10:25:11 51

原创 2022.12.22日学习内容(String,interesting,StringBuilder的相互转换)

2)StringBuilder sb = new StringBuilder(String)便转化为StringBuilder类型。2)yhrow用在方法体内,跟的是异常对象名,用于手动抛出一个异常由方法体内的语句处理。1)StringBuilder.toString()后,便转化为String类型。1)throws用在方法声明后面,跟的是异常类名,表示调用该方法可能会有异常。2,把String类型转为int类型String s="100"

2022-12-22 18:51:52 99

原创 2022.12.21日学习内容(类的调用顺序)

1,当父类有4个私有的成员变量,有toString方法,子类有自己的两个成员变量,并且也有toString方法时,父类的toString方法将被重写,toString方法只能打印出子类自己的成员变量,无法打印出继承到的成员变量,这时我们应该改写toString方法,将从父类继承到的变量改成get,如下。5,当父类没有接口,子类有接口时,使用多态的new方法使用不到子类的接口,应该使用最普通的方法new一个对象,如下。4,当父类子类都有静态代码块与构造代码块和构造方法时,调用顺序为。

2022-12-21 16:34:26 68

原创 2022.12.20日学习内容(继承)

7,子类的所有构造方法(无论有参无参)都会默认访问父类无参的构造方法,所以在给父类有参的构造方法时记得补充一个无参的构造方法,还可以在子类里用super调用父类有参的构造方法。6,super与this关键字的使用方法类似,而super的使用条件为,子类里有成员名跟父类相同,想调用父类的成员时使用,若不加super,则优选子类的成员。9,子类重写的访问修饰符等级必须大于等于父类的,名字,返回类型,参数要完全一致才能重写。10,被final修饰过的方法不能再重写,修饰的变量不能再次赋值,修饰的类不能被继承。

2022-12-20 21:39:23 35

原创 2022.12.19日学习内容(小知识)

1,当字符串之间使用+拼接时,系统底层会自动创建一个StringBuilder对象,再调用其append方法进行拼接,拼接后再调用其toString方法转化为String类型,所以以下代码输出的结果为false。其中Integer为int的包装,Character为char的包装。3,ArrayList集合尖括号里的类型为泛型,泛型一定为引用类型。2,包装类和基本数据类型的区别。

2022-12-19 17:27:33 29

原创 2022.12.16日学习内容(String的常用方法)

1,字符串和数组虽然都有length,但是数组的length是没有括号()的,字符串的length是带括号的,所以说字符串的length是方法,数组的length是属性,还可以说字符串没有length属性,数组没有length方法。两种方法,第一种是用substring然后进行字符串拼接,第二种则是用for循环代替中间四位。System.out.println("请输入一个字符串");输入1TMD1,结果为1***1。3,电话号码中间四位屏蔽。

2022-12-18 22:55:20 43

原创 2022.12.15日学习内容(Object的常用方法)

6)notify/notifyAll 唤醒单个线程/唤醒所有线程。2,所用引用类型的基本类型都是Object,里面包含的方法有。1)getClass 得到当前对象的类 多用于反射。2)hashCode 得到hash值 多用于比较。3,打印对象要对对象进行toString方法重写。8)finalize 垃圾回收 :gc();5)toString 将对象转换为字符串。2)构造方法,有参数的无参数的都要写。3)equals 比较里面的内容的值。3)每个成员设置set与get方法。7)wait 线程等待。

2022-12-18 19:13:27 30

原创 2022.12.14日学习内容(String的常用方法)

System.out.println("账号或密码错误,请重新输入,你还有" + count + "次机会");"成功":"失败"));System.out.println("小写字母有" + small + "个");System.out.println("大写字母有" + big + "个");System.out.println("数字有" + num + "个");System.out.println("请输入你的账号");System.out.println("请输入你的密码");

2022-12-14 19:37:17 41

原创 2022.12.13日学习内容(JavaBean)

每个类都默认有一个构造方法,当你创建了一个新的有参的构造方法,默认的构造方法就会失效,如果想要他保留原来的效果,应该手动添加一个无参数的构造方法。重载就是在同一个类中方法名相同,参数类型或者参数个数不一样,就可以说一个方法是另一个方法的重载,具体为。静态代码块的优先级高于代码块与构造方法,但是静态代码块只会执行一次,代码块的优先级高于构造方法。想把对象抽象成为类,则要把对象的特征抽象为属性,行为抽象为方法。对象,用名词描述对象的特征,用动词描述对象的行为。在java里,用new关键字创建的就是对象。

2022-12-13 19:25:12 28

空空如也

空空如也

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

TA关注的人

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