- 博客(25)
- 问答 (1)
- 收藏
- 关注
原创 cookie
HTTP协议本身是无状态的。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。cookie 被设置进入浏览器后,每次请求都会携带 cookie 的值,所以我们需要从 request 中取出 cookie 进行解析。cookie 是由服务端创建的,由浏览器端保存的。客户端保存cookie,之后向服务器发送请求时,HttpRequest请求中会包含一个Cookie的头部。
2023-04-11 19:50:24
150
原创 Filter过滤器
3 :Filter接口中有一个doFilter方法,当开发人员编写好Filter,并配置对哪个web资源进行拦截后,Web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,doFilter方法中有一个filterChain对象,用于继续传递给下一个filter,在传递之前我们可以定义过滤请求的功能,在传递之后,我们可以定义过滤响应的功能。当客户请求访问与过滤器关联的URL的时候,Servlet过滤器将先执行doFilter方法。
2023-04-10 19:54:46
144
原创 Uncaught ReferenceError: layui is not defined问题解决
3.导入的js是否存在,使用idea按住Ctrl鼠标是否可以点击(变蓝色)之前我是把layui.js写在x-admin.js后面,导致报错。1.引用的各个js的调用顺序有误,重新调整其引用顺序。4.是否有class=‘form’而我今天遇到的就是第一点,顺序。
2023-04-06 19:52:53
3626
1
原创 session
用户发送第—次请求的时候:服务器会创建一个新的session对象,同时给session对象生成一个id,然后web服务器会将session的id发送给浏览器,浏览器将session的id保存在浏览器的缓存中。什么是无状态:请求的时候,B和S是连接的,但是请求结束之后,连接就断了。用户发送第二次请求的时候:会自动将浏览器缓存中的sessionid自动发送给服务器,服务器获取到sessionid,然后从session列表中查找到对应的session对象。从服务器中获取当前的session对象。
2023-04-03 18:35:57
139
原创 数据库-事务
使用commit语句可以提交事务.当执行了commit语句子后,会确认事务的变化、结束事务、删除保存点、释放锁,数据生效。当使用commit语句结束事务子后,其它会话(其他连接)将可以查看到事务变化后的新数据(所有数据就正式生效.)保存点是事务中的点.用于取消部分事务,当结束事务时(commit),会自动的删除该事务所定义的所有保存点.当执行回退事务时,通过指定保存点可以回退到指定的点。事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。
2023-03-30 19:06:22
143
原创 JDBC的相关知识点
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。在编程中要连接数据库,必须先装载特定厂商的数据库驱动程序,不同的数据库有不同的装载方法。建议在加载启动的时候,将其单独封装到一个工具类当中,使用时直接调用就行,同时,也可以在在里面进行关闭连接的操作(在同一个工具类中)用于执行静态SQL语句并返回它所生成结果的对象。(3)Statement接口。
2023-03-29 19:15:24
111
原创 MYSQL语句
(2)Delete语句不能删除某一列的值(可使用update设为null或者")使用delete语句仅删除记录,不删除表本身。drop table 表名;Order by指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的列名。(2)数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。(1)从第一张表中,取出一行和第二张表的每一行进行组合,返回结果[含有两张表的所有列].(3)在values中列出的数据位置必须与被加入的列的排列位置相对应。
2023-03-28 19:23:56
122
原创 MYSQL数据库
(1):MySQL 是开放源代码的数据库,任何人都可以获取该数据库的源代码。(1):打开cmd登录数据库,进入后,执行:ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;(2):然后执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';'改成你原来的密码,'
2023-03-27 18:49:25
416
原创 MVC模式
页面经渲染(数据填充)后,再发送给客户端。(2)服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对用户请求进行处理。(1)用户通过 View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX 请求等。(3):C(Controller):控制层/Servlet层,接收页面数据(请求)服务标准(接口)是相同的,服务提供者(实现类)可以更换。(1):M(Model):数据/业务层。即上层对下层的调用,是通过接口实现的。(2):V(View):视图/展示层。
2023-03-23 19:25:52
137
原创 HTTP常用请求方式
换句话说,第二次请求时你将会得到不同的结果。(5):POST方式提交数据上限默认为8M(可以在PHP的配置文件post_max_size选项中修改)(4):用于密码等安全性要求高的场合,提交数据量较大的场合,如上传文件,发布文章等。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。(1):HEAD:类似于GET请求,但只获取请求头信息,不获取响应体信息。(1):get方式在url后面拼接参数,只能以文本的形式传递参数。GET请求在URL中传送的参数是有长度限制的,而POST没有。
2023-03-22 19:15:36
168
原创 JavaWeb
init():Tomcat服务器启动的时候执行,只执行一次,通常是完成初始化的操作,且在执行的时候,Servlet对象已经被创建出来了。service():处理用户请求的核心方法,用户请求一次,方法执行一次,因此,此方法是专门用来处理请求和响应的。支持缓存,任何一个GET请求的“响应结果”都会被浏览器缓存起来,在浏览器中,一个GET请求的路径对应一个资源。是危险的,因为POST请求是向服务器提交数据,因此一般情况下拦截请求的时候,大部分会选择拦截POST请求。请求协议包括:请求行,请求头,空白行,
2023-03-21 19:51:38
93
原创 关于jsp
jsp文件会被tomcat翻译生成:index.jsp.java文件,然后tomcat服务器又将其翻译成为:index.jsp.class文件,访问index.jsp实际上执行的是index.jsp.class中的方法。(1):引入标签库:。(2):占内存和磁盘:JSP会自动生成.java和.class文件占磁盘,运行的是.class文件占内存。(1):主要功能:获取数据。
2023-03-20 19:54:07
89
原创 重定向和转发(request,response)
(1):获取请求转发器对象:RequestDispacher dispacher = request.getRequestDispacher("/b")(1):Request对象实际上又称为请求域对象,其范围要比应用域(ServletContext)小很多,生命周期短很多,请求域只在一次请求内有效。(4):getParameter(String name):获取value这个数组当中的元素。(2):getParameterNames():获取map集合中的所有keys。
2023-03-16 19:55:21
389
原创 HTTP协议
(2):状态码:404表示访问的资源不存在,通常是因为要么路径写错了,要么是路径对了,但是服务器中对应的资源没有启动成功;(3):支持缓存,任何一个GET请求的“响应结果”都会被浏览器缓存起来,在浏览器中,一个GET请求的路径对应一个资源。(2):是危险的,因为POST请求是向服务器提交数据,因此一般情况下拦截请求的时候,大部分会选择拦截POST请求。响应体:响应的正文,内容是一个长的字符串,这个字符串被浏览器渲染,解释并执行,最终展示出效果。4.请求协议包括:请求行,请求头,空白行,请求体。
2023-03-15 19:47:47
106
原创 Servlet
当然,以后在编写Servlet类的时候,实际上是不会去直接继承GenericServlet的,因为B/S机构是系统,这种系统是基于Http超文本传输协议的,在Servlet规范当中,提供了一个类:HttpServlet。(2):init():Tomcat服务器启动的时候执行,只执行一次,通常是完成初始化的操作,且在执行的时候,Servlet对象已经被创建出来了。(4):destroy():只执行一次,此方法在执行的时候,Servlet对象还未被销毁,因此可以用来用于关闭操作,比如流,数据库的连接关闭。
2023-03-14 19:35:14
181
原创 B\S架构
客户端主要负责业务的处理,比如一些数据的处理,转换,展示等;特性:对客户端的要求较高;客户端:前端,服务器端:业务的处理和分发。数据库:数据的管理。(6)服务器软件找到index.html文件,并且将index.html文件中的内容直接输出响应到浏览器上。2.服务器压力小:大量的数据都是集成在客户端软件当中,所以服务器只需要传送很少的数据量。1.速度快:大量的数据都是集成在客户端软件当中,所以服务器只需要传送很少的数据量。(5)80端口对应的服务器软件得知浏览器想要的资源名是:index.html。
2023-03-13 19:05:06
216
原创 异常及其处理
(2):运行时异常,在编译成class文件不需要处理,在运行字节码文件时可能出现的异常。(1):编译时异常,是在编译成class文件时必须要处理的异常,也称之为受检异常。5.异常的处理方式:抛出(Throws)和捕获(try...catch...)(2):编译时异常因为在编译时就会检查,所以必须要写在方法后面进行显示声明。(2):Exceotion:称为异常类,它表示程序本身可以处理的问题。(3):运行时异常因为在运行时才会发生,所以在方法后面可以不写。(1):throw是用在方法体内,跟的是异常对象名。
2023-03-09 19:09:45
88
原创 常用API
注意:在使用包装类类型的时候,如果做操作,最好先判断是否为 null 我们推荐的是,只要是对象,在使用前就必须进行不为 null 的判断。toString():返回对象的字符串表示形式,建议所有子类重写该方法。equals():比较对象是否相等,默认比较的是地址,返回bool值。toString(对象,对象字符串):返回对象的字符串表现形式。toString(对象):返回参数中的对象的字符串的表示形式。isNull():判断对象是否为空,返回一个bool值。
2023-03-08 19:02:34
91
原创 Socket网络编程
(4):geHostAddress():获取InetAddress对象的地址。(3):getHostName():获取InetAdderss对象的主机名。(1):getLocalHost():获取本机InetAddress对象。(2):getByName():根据指定主机名,获取ip地址对象。(3):tcp协议进行通信的两个应用进程:客户端,服务端。(1):将数据,源,目的封装成数据包,不需要建立连接。(5):传输完毕,需释放已建立的连接,缺点:效率低。(2):传输前,采用“三次握手”方式,是可靠的。
2023-03-07 16:05:19
139
原创 反射相关知识点
(1):class.forName()方法的参数是一个字符串,且是一个完整的类名,例如:java.lang.String。在类被加载完后,在堆中就产生了一个class类型的对象,这个对象包含了类的完整信息,通过这个对象得到类的结构,这个对象就像一面镜子,透过这个镜子看到类的结构,所以形象的称之为反射。(1):java.lng.Class:代表整个字节码,代表一个类型,代表整个类;(2):java.lang.reflect.Method:代表字节码中的方法字节码;(4):类的字节码二进制数据是放在方法区的。
2023-03-04 15:48:57
98
原创 3.3:线程
2.在java中,线程A和线程B,它们在堆内存和方法区内存共享,但是栈内存独立,一个线程一个栈;(3):让线程排队执行(不能并发),又叫线程同步机制:线程t1和t2,其中t1线程执行的时候,t2线程必须等待t1执行结束才能执行,两个线程之间发生了等待关系。在启动线程之前,调用方法:当前对象.setDaemon(true),将当前对象设置为守护线程。stop():强行终止一个线程,缺点:如果线程正在运行,突然终止,容易丢失数据。(2):守护线程:一个死循环,所有的用户线程只要结束,守护线程自动结束。
2023-03-03 17:42:56
112
原创 3.2:流
当一个对象实现序列化接口的时候,会自动生成一个序列化版本号,但是,一旦代码确定以 后,不能进行后续的修改,因此,建议给该类提供一个固定不变的序列化版本号(建议手动写出来)。字符流:按照字符的方式读取数据,一次读取一个字符,适用于普通文本(文件.txt),但不能读取Word文档。6.File类:与IO流没有关系,因此不能完成对文件的读写,它只是对文件本身进行操作,比如创建文件,删除文件等等。3.注意事项:流使用完毕后一定要关闭流,同时,所有的输出流都要实现方法 flush(),否则会丢失数据。
2023-03-02 19:51:33
72
原创 集合的使用
其中 底层采用了数组数据结构的是:ArrayList(非线程安全的);2.集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合中存储的都是java对象的内存地址,或者说集合中存储的是引用对象。6.迭代器:Iterator,集合特有,用于遍历集合中的元素;好处:集合中存储的元素类型统一了,从集合中取出的元素类型是泛型指定的类型,因此不需要大量的向下转型。(3)Map集合:key无序不可重复,key以及value都是存储java对象的内存地址。(2)List集合:有序可重复,元素有下标。
2023-03-01 20:23:47
290
原创 接口的使用
4.接口只包含两部分,一部分是常量,一部分是抽象方法,且常量前的 public static final 以及抽方法前的 public abstatic 可省略。6.一个类可以同时实现多个接口,且当非抽象类实现接口时,必须全部重写接口里的方法。5.接口中的所有元素都是用public 修饰的;接口中的方法不能有方法体。类似于多态,使用接口能降低程序耦合度,其扩展力更强。2.接口是完全抽象的,也可以说接口是特殊的抽象类。3.接口可以继承接口,且可以多继承。1.接口是一种数据类型。
2023-02-28 19:16:12
59
原创 关键字this and super
(3):super()只能出现在构造方法的第一行,通过当前的构造方法去调用父类的构造方法,目的是创建子类对象的时候,先初始化父类型特征。(1):this是一个变量,是一个引用,保存当前对象的内存地址指向自身,所以,严格意义上来说,this代表的就是当前对象。(6):this():可以通过构造方法调用构造方法,但前提是在同一类中,其作用就是为了提高代码的复用性。(1):super不是引用,也不保存地址,也不指向任何对象,只是代表当前对象内部的那一块父类型的特征。(2):this存储在堆内存之中对象的内部。
2023-02-27 16:44:19
128
2
有没有人知道如何解决
2022-07-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅