自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java面试基础

EL + JSTL 可以完全替代 JSP 中的 Java 代码,实现。,可以通过抓包、禁用浏览器 JS 绕过,后端必须也要做校验。两层防护,既防普通用户误操作,又防绕过前端的恶意重复提交。,直接在 EL 中做运算,还能自动处理空值(包裹 Java 代码,不用类型强转,不用调用。的顺序自动查找数据,不用写代码判断域对象。:点击提交后立刻把按钮置灰、禁用,不能再点。:能防 多点提交、刷新、回退、恶意重复请求。-- 原生JSP代码(繁琐) -->,一行 EL 替代多行 Java 代码。

2026-05-07 11:16:00 318

原创 java面向对象

面向对象:以类的方式组织代码,以对象的组织封装数据方法的定义:修饰符,返回类型,break和return区别,方法名,参数列表,异常抛出方法的调用:静态方法,非静态方法,形参和实参,值传递和引用传递,this关键字值传递和引用传递定义了一个的方法,接收一个,方法内部把。。numaaanum。

2026-05-07 11:08:03 21

原创 java面试基础

几乎所有后端框架(SpringBoot、Django、Flask、Struts2)、前端框架(Vue/React)都基于 MVC 思想。三、最关键的 3 个区别。是两种页面包含方式,,也是面试高频考点。

2026-04-30 19:55:35 327

原创 java基础

计算机网络用分组交换的原因:1不需要提前建立专用线路,线路利用率高。:int、float、boolean、char 等,存的是。Java 只有值传递,没有真正的引用传递,这是核心结论。方法调用时,传递的是变量的「副本」,不是变量本身。用两个变量模拟两个指针,在数组分别从前从后移动。建立连接---传输数据------断开连接。① 基本类型:值传递(直接传数值副本)方法里修改副本,不会影响原来的变量。2数据分组转发,路由灵活,时延小。电路交换,电报交换,分组交换。:对象、数组 等,存的是。

2026-04-29 20:37:04 45

原创 java基础

循环 /switch,继续执行循环 /switch 后面的代码。可以携带一个返回值(有返回值方法),或单纯结束方法(无返回值。2. return 示例(结束方法,后续代码全不执行)Java 中 return 和 break 核心辨析。的关键字,核心区别一句话总结:break。:循环 /switch 控制关键字。2. return(返回)1. break(中断)两个维度彻底讲清楚。,方法会继续往下运行。:方法流程控制关键字。

2026-04-28 16:48:07 45

原创 Java面试基础

服务端数据流转:Servlet 查询数据 → 存入 request → 转发到 JSP / 其他 Servlet 展示。来自:表单、URL 拼接参数、ajax 请求参数、地址栏?:无锁、高性能、代码简洁,是 Servlet 开发标准规范。,需要手动强转(String、集合、实体类对象等)接收用户输入:账号、密码、查询条件、表单提交数据。,多个线程同时读写会引发数据错乱、线程安全问题。方案 3:同步代码块(慎用,会降低性能)一、核心原理:为什么会有线程安全问题?的数据,可增删改、任意类型,仅在。

2026-04-28 09:26:21 345

原创 java面试基础

需要购买 / 申请 SSL 证书(有免费证书如 Let’s Encrypt),服务器配置稍复杂。账号、密码、聊天记录、支付信息,中间人(WiFi 劫持、运营商、黑客)可直接查看、篡改。通过非对称 + 对称混合加密,数据乱码传输,第三方无法窃取、篡改、监听。验证网站真实身份,浏览器地址栏显示小锁,杜绝伪造站点。:无证书、无身份验证,无法确认网站真假,极易遭遇。:浏览器信任、搜索优先收录,是现在网站标配。:无加密解密运算,请求更快、服务器压力小。,所有用户请求,共用这一个对象,不同请求用。

2026-04-25 18:18:47 202

原创 java数组2

/ 输出:[1, 2, 5, 9]数组创建但是不初始化,数组变量在栈中,存储的是地址,基本类型变量存储在栈中,存的直接是数据,基本类型可变,引用类型不可变说的是基本类型的数据可以直接改变,引用类型的地址不能改变。// 输出:[5, 2, 9, 1]对于冒泡排序,系统进行时,有比较次数和赋值移动的时间,逆序的数组n,比较次数(n-1)+(n-2)+....+1。每次比较都需要交换。

2026-04-25 18:11:08 265

原创 java面试基础

加载 JDBC 驱动,读取 url、用户名、密码、初始连接数、最大连接数。,统一管理、重复使用,不用每次访问数据库都「新建连接 + 关闭连接」。放行:执行后续资源(Servlet / 静态页面)服务关闭时,遍历池子,统一关闭所有连接,释放资源。水平拆分:按 id / 时间 分表(亿级数据)服务器关闭时,统一销毁池内所有连接,释放资源。2. 拦截服务阶段:doFilter (),项目启动时,循环创建多条连接存入集合。3. 销毁阶段:destroy (),而是归还到连接池,供下次重复使用。

2026-04-24 21:10:44 354

原创 java基础--数组

数组只有10个数据的位置,当你访问这10个位置以外的数据,就会抛出这个异常。//这个特点说明,可以定义任意类型的数组,只要定义的数组只有一种数据类型。java的引用类型是在堆中,所以数组不论什么类型都在堆中。数组是引用类型,数组变量是对像,创建的这个数组是对象。3.下标的合法区间[0,arr.length-1]String [] 里面的数据是字符串类的对象。2.类型必须一致一个数组就是同一种类型。jdk1.5之后出现了增强for循环。数组初始化(数组大小10)引用类型:类,数组,接口。

2026-04-24 21:00:35 56

原创 java基础

根据用户选择的编号,匹配对应的 case,调用对应的加减乘除方法,完成计算输出。,立刻提示「出错」,跳过后续输入数字的步骤,直接进入下一轮循环。死循环,让计算器可以一直反复运算,不用每次重新运行程序。(个数、类型、顺序不同),与返回值无关,这就是方法重载。静态方法,接收两个整数参数,计算并打印结果;先用键盘录入,获取用户输入的操作编号(1/2/3/4)。只有输入 1、2、3、4 时,才让用户录入。什么是值传递什么是引用传递。的判断,防止程序崩溃。

2026-04-23 19:40:00 37

原创 java面试基础2

(服务器关闭 / 项目卸载),服务器销毁 ServletContext 对象,释放资源。(服务器启动 / 项目部署),服务器自动创建 ServletContext 对象,数据库账号只赋予必要权限,不授予删表、删库等高风险权限。传递参数,SQL 结构与参数分离,从根本上杜绝注入。严禁直接用字符串拼接方式把用户输入拼进 SQL。,是 Servlet 的一种特殊形式。重定向:不共享 request 数据。整个 Web 应用运行期间,该对象。,所有 Servlet 共享使用。框架底层自动使用预编译,只需使用。

2026-04-22 21:26:14 342

原创 java面试基础

调用 service() → 调用 doGet/doPost (处理业务逻辑, 持续整个请求过程)这样 Tomcat 就会永远用 UTF-8 解析所有 GET 请求,乱码彻底解决。Web 容器定位 Servlet → 实例化 + 调用 init() (仅一次)服务器关闭 → 调用 destroy() (仅一次) → 释放核心资源。服务器解析请求 → 创建 HttpServletRequest。方案二:代码手动转码(临时应急)如何来处理get请求产生的乱码。解析,不兼容就乱码。Request生命周期。

2026-04-22 21:19:59 193

原创 servlet简要面试问题

HTTP(HyperText Transfer Protocol,超文本传输协议)是一种基于请求 - 响应模式、运行在 TCP 之上的应用层协议,用于浏览器和服务器之间传输数据。主要特点无连接每次请求处理完就断开连接,不保持长期连接。无状态服务器不记住上一次请求的信息,每次请求都是独立的。基于请求 - 响应客户端发请求 → 服务器回响应,一问一答。简单快速、灵活支持传输文本、图片、视频、JSON 等多种数据。默认端口 80,HTTPS 是加密版,默认端口 443。

2026-04-20 11:58:41 212

原创 mysql基础

总结:一个数据库的服务器中包含多个数据库,一个数据库中有多张表,一个表中包含多个字段(字段和。数据库的作用:存储数据的作用。开发任何的应用,都有数据库。关系型的数据库:数据库中保存的都是实体与实体之间的关系。非过程性的语言:一条语言,就对应一个返回的结果。属性是对应),表中存放是数据,一行数据和一个。数据库也是一个文件的系统。查看当前数据库服务器中的所有数据库。公司产品,大型的数据库,收费的。小型的数据库,免费开源的。开发,必用的两个数据库。大型的数据库,收费的。(数据库的设计的工具)

2026-04-20 11:49:07 207

原创 maven

比如我们在项目开发的过程中,可能多个模块独立开发,但是多个模块可能依赖相同的公共模块,比如说每个模块都需要javaseo-utils,在编译的时候,maven-compiler-plugin插件也要被引入,maven仓库地址以及发布目录都是相同的配置。我们可以使用Maven的继承功能,把公共的配置信息写到父模块中,子模块只要继承了该父模块,也会继承父模块的配置信息。build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;ciManagement :项目的持续继承信息;

2026-04-17 11:20:30 323

原创 java过滤器

和servlet不同的是,过滤器的加载是在tomcat一启动就加载上的,而servlet的加载在访问这个servlet或者是配置的一开始就加载sevlet才会在启动的时候加载。前面我们说到这个代码是实现了放行方法,通过filterchain这个参数实现的,这个参数的放行意味这个过滤器的放行,进入下一个过滤器。确实filter的基础功能是拦截,对于访问特定地址的请求,过滤器可以控制其是否被允许进入servlet,被servlet处理。过滤器的顺序是靠部署顺序决定的,谁在前面谁先加载初始化。

2026-04-17 11:13:28 51

原创 maven

用户在mvn命令后可以指定三个生命周期中的任何阶段,则Maven会按以下逻辑执行:首先会得到该阶段所属生命周期,从该生命周期中的第一个阶段开始按顺序执行,直至该阶段本身。Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,生命周期只是定义了一系列的阶段,并确定这些阶段的执行顺序。运行 Maven 的时候,Maven 所需要的任何构件都是直接从本地仓库获取的。Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建。

2026-04-14 09:52:06 306

原创 maven

就像 Make 的 MakeFile、Ant 的 build.xml 一样,Maven 项目的核心是 pom.xml。对于更大的项目,我们可能需要创建自己的库并在不同的部分使用它的项目。不同的项目需要不同版本的库。导入引入依赖Hello项目的HelloFriend项目,可以看到Hello项目已经被打成jar包引用到HelloFriend的Maven依赖中。Maven项目视图主要用于查看该maven项目的各项属性,同时也可以进行一些常见的maven的操作,比如打包,清理,测试等等;

2026-04-14 09:45:43 332

原创 java---servlet

指定项目访问根路径(如/myweb)时默认打开的页面(比如自己的login.htmlindex.jsp。

2026-04-13 15:14:13 379

原创 cookie实战

服务器销毁 Session,并把同名 Cookie 的过期时间设为 0,让浏览器删除该 Cookie,下次不再自动登录。用户勾选 “记住我” 并登录成功后,服务器把用户名(或令牌)存入 Cookie,设置。LogoutServlet(退出登录,清除 Cookie)LoginServlet(处理登录、写 Cookie)IndexServlet(首页,自动登录逻辑),并把 Cookie 发给浏览器保存。login.html(登录页面)使用cookie实现自动登陆。

2026-04-13 15:13:18 29

原创 coookie

会话跟踪之sessionsession也是域对象之一,它的范围是在一个会话范围内有效。session既然是域对象,那么当然就要有()和()系列方法了。在一个会话内共享一个session对象,所以session中可以保存一个会话内的数据。例如当前用户的信息。session的范围大于request,可以在一个会话中多个请求之间共享数据。但session的范围小于ServletContext(application),session不能在多个用户之间共享数据。

2026-04-12 22:56:49 337

原创 Cookie

/ 获取当前项目根路径,拼接 / 表示整个项目生效 cookie.setPath(request.getContextPath() + "/");访问项目下其他路径(如 /cookie_demo/AServlet),如果不调用 cookie.setPath(),Cookie 会使用。当前请求的路径 不包含 Cookie 设置的 Path → 不携带。都能共享这个 Cookie(慎用,容易造成Cookie冲突)。路径匹配严格区分大小写,设置和访问路径必须一致。请求路径包含Cookie路径。

2026-04-12 22:52:18 362

原创 请求对象响应对象

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。request对象可以用来获取请求头数据,当然,这些请求数据都是Tomcat封装到request中去的。request中还提供了与请求相关的其他方法,有些方法是为了我们更加便捷的方法请求头数据而设计,有些是与请求URL相关的方法。

2026-04-11 20:14:12 315

原创 请求对象响应对象2

request的setCharacterEncodng()可以设置编码,当然这必须在调用所有的getParameter()方法之前调用request的setCharacterEncodng()方法来设置编码,这样,就不会使用ISO解读字节串了,而是使用你给定的编码来解读。因为在获取参数时已经被错误的编码了,但因为我们知道,乱码的两个原因:本来是使用UTF-8编码的,还错误的使用了ISO-8859-1编码。默认情况下,使用getParameter()获取POST请求参数时,使用的是ISO-8859-1编码。

2026-04-11 20:12:29 313

原创 cookie

通过 cookie.setMaxAge(int 秒数) 设置。生命周期 = Cookie 在客户端。最大 8KB ~ 16KB。单域名 Cookie 数量。浏览器总 Cookie 数。最多 500~1000 个。单个 Cookie 大小。现代浏览器扩展(常见)

2026-04-10 18:41:13 317

原创 servlet

第三种方法,使用getClass().getClassLoader().getResourceAsStream()方法;第二种方法,使用servletContext.getResourceAsStream()方法;,所以Servlet就是单例的!这与我们自己写的单例模式不太一样。第一种方法,通过ServletContext.getRealPath()方法;因为Servlet实例是由Tomcat来创建的,但Tomcat只会。一个实例需要在同一个时间点上处理多个请求!tomcat来管理而实现的!

2026-04-09 17:40:47 482

原创 servlet

ServletContext是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。在<servlet>元素中可以加载多个<init-param>,每个<init-param>表示一个参数。<init-param>下有两个子元素:<param-name>和<param-value>,其中<param-name>表示参数的名称,而<param-value>元素参数的值。注意,<init-param>是添加到<servlet>元素中,而不是<servlet-mapping>中。

2026-04-09 17:32:17 526

原创 HttpServlet

所有添加了<load-on-startup>子元素的Servle,都会在Tomcat启动时被创建!但我们知道在Servlet生命周期中init()方法会在创建后被调用,所以你可以在init()方法中做一些输出,查看是否在Tomcat启动时调用了它。有些Servlet需要在Tomcat启动时就被创建,而不是第一次访问时被创建,那么可以在web.xml文件中配置<servlet>元素。因为现在我们的请求都是基于HTTP协议的,所以我们应该专门为HTTP请求写一个Servlet做为通用父类。

2026-04-07 15:18:43 234

原创 servlet

这刚好与<url-pattern>/logon</url-pattern>匹配,这说明存在一个可以通过这个请求的Servlet。然后再通过<url-pattern>/logon </url-pattern>查找到<servlet-name>login</servlet-name>,然后再通过<servlet-name>login </servle-name>查找到<servlet-class>com.rl.servlet.LoginServlet</servlet-class>。(观察者模式),后续讲解。

2026-04-07 15:12:56 366

原创 初识Maven

以上设置完成表示在本idea上,所有项目如未对Maven的配置进行单独配置,则默认均使用该Maven版本和本地库设置;在/src/test/java/cn/tx/maven目录下新建测试文件HelloFriendTest.java。,如果遇到打包不成功,jar包无法下载等情况,优先进行本地库配置,避免因网络导致的maven依赖包问题.在/src/test/java/cn/tx/maven目录下新建测试文件HelloTest.java。至此,在IDEA上使用Maven配置的Java web工程已经完成配置。

2026-04-05 16:11:35 318

原创 maven

对第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。对自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。

2026-04-05 15:58:50 194

原创 javaweb--servlet2

摘要:Servlet多重映射允许通过不同URL访问同一Servlet,主要作用包括:1)兼容旧路径(如新旧登录URL共存);2)提供多个友好入口(如/home和/index指向首页);3)简化路径记忆;4)模块统一管理(如/admin/集中处理后台请求)。通配符匹配分为目录匹配(/user/)和后缀匹配(.do),优先级规则为:完全路径>目录匹配>扩展名匹配。通过ServletConfig可获取初始化参数,实现灵活配置。注意路径规则不可混用(如/.do无效)。

2026-03-28 10:44:19 326

原创 javaweb---servlet

URL 是。

2026-03-26 10:14:30 396

原创 java---过滤器,监听器

其实可以这样理解,当用户请求某个Servlet时,Tomcat会去执行注册在这个请求上的Filter,然后是否“放行”由Filter来决定。当执行完成Servlet的代码后,还会执行Filter后面的代码。当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;<url-pattern>/*</url-pattern>这个意思是给这个项目下的全部的路径统一处理。是让过滤器允许放行的意思,如果没有这个代码,过滤器就不会放行。

2026-03-22 16:27:45 240

原创 java抽象方法,构造方法辨析

抽象方法的定义如下定义了两个抽象方法。

2026-03-21 17:37:21 39

原创 idea17创建tomcat项目(计网底层核心理解!)

虽然公网ip+内网ip可以找到你的电脑,但是你的电脑有不同的客户端,微信,王者荣耀,音乐,在不同的客户端申请数据也需要区分,不然服务器不知道把数据返回给你的哪个客户端,所以客户端也有端口号,但是客户端的端口号是操作系统自动分配的,操作系统已经内置了这个功能,比如在浏览器访问百度,浏览器申请数据,操作系统就给浏览器一个端口号,然后服务器收到请求,就给这个地址公网ip+内网ip+端口号,找到浏览器,发给他数据,从而找到我们要显示的页面。然后一直不停止,电脑也不关机,所以服务器一直处于启动状态,一直可以被访问。

2026-03-20 19:46:35 690

原创 c/s,b/s架构

但是,因为客户端需要不断的更新,用户使用起来就比较麻烦。现在的C/S结构的客户端已经好多了,可以提示用户更新,用户只需要点击更新就可以了。B/S结构的好处在于不需要用户更新客户端,客户端只需要有一个浏览器就OK。/Server),例如QQ就是C/S结构的。我们每个人电脑上都需要安装QQ的客户端,客户端软件向服务器端软件发送请求,服务器端给客户端返回响应。(Browser/Server),例如网站都是B/S结构的。简单说,我们平时使用需要下载的软件(比如游戏,聊天软件,短视频软件)等都是cs架构。

2026-03-19 21:17:36 116

原创 http协议

碎碎念:简单来说就是客户端服务器传输需要一种语言,一种信号,客户端必须把需求发出来,比如查看,下单,取消下单等,用一些符号表示,并且需要知道路径,然后告诉服务器使用什么语言,(我们用英语交流吧),就说都用http1这个协议吧,然后服务器回应的时候也是这样,告诉客户端请求的路径错了,服务器的代码不对,没有权限访问等等,然后成功了就把用户需要的信息返回出去。浏览器(客户端)→ HTTP → Tomcat(服务器)你(顾客)→ 服务员(沟通)→ 厨房(服务器)服务员必须说“好的,马上来”(而非乱回应)

2026-03-19 20:52:10 428

原创 jdk,jvm,jre核心辨析

其他的工具包括其他语言的工具也是如此,这些下载的工具只是辅助你更好的编写,运行代码,但是他们本质没有运行,编译等的功能,只是提供了一个按钮、面板。简单来说bin文件夹包含了jvm在内的一些可执行文件,而lib文件夹就是java的一些内置类库。│ ├── javac.exe ← 编译器(将源代码转成字节码)的缩写,直译是 “库”,在编程 / 软件开发场景中,它特指。,是项目中存放 “可复用代码 / 资源” 的核心目录。│ └── java.exe ← 运行命令。JVM 就是一种「极小、专用的虚拟机」

2026-03-17 16:17:19 340

空空如也

空空如也

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

TA关注的人

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