11.14【JAVA EXP3】【DEBUG】
比较疑惑的一点是当前页面(资源的url)与请求的url?
请求的url由webService接收,servelt当中也可以发送出这个url
进行页面跳转,是跳转到某个Jsp页面,这个页面的url是在哪里定义的?
在Jsp打印信息,这个报错?

报错原因: out 对象在 JSP 页面中默认是 JspWriter 类型,而不是 PrintWriter。JspWriter 没有 println 方法,只有 print 方法。

报错原因是 out 对象没有正确解析为 JspWriter 类型,导致 print 方法无法被识别。
提供修复建议: 确保 out 对象是 JspWriter 类型,并且在 JSP 页面中正确使用。可以通过显式声明 out 对象来解决这个问题。

JspWriter 类未导入,导致编译器无法识别该类型。
out 变量已经在 JSP 页面中隐式定义,再次声明会导致重复定义错误。
pageContext.getOut() 方法调用正确,但 out 变量已经存在,不需要重新获取
和解决log4j一样的方法,在头部导入import


根本原因就是pom.xml当中少导了一个包,jsp和servlet-api不在同一个包里


导入后就完全可以了,即使不用显示地声明
request.getRequestDispatcher("home.jsp").forward(request, response);什么意思?
forward有什么用
数据库连接问题



太抽象了,


太抽象了,拼错了




原因是init并没有被调用

不是这个原因,既然是对框架进行覆写,那么在调用的时候就会进行init的调用
'tomcat当中并没有mySql-connect的包,
但这很抽象,因为在java文件当中是可以连接上数据库的
这很合理,因为在doPost中是由tomcat服务器去连接数据库的,普通java文件的Main并不直接经过服务器,而是直接对数据库进行操作的,所以与Tomcat的lib无关,用的是Maven当中的mySql-connection包
而要经过Tomcat服务器就必须要在lib当中包含mySql的connect包
这里没有,所以会报错
解决




PRO2


PRO3

maven管理第三方库,但是tomcat启动时,用不到maven管理的Jar包,需要手动将由Maven管理的项目中第三方jar包逐个导入tomcat的lib目录下,服务器才可以调用这些第三方库的方法,有没有什么好的解决方法,可以不用一个一个调?
从Maven构建的WAR文件中提取Jar包并部署到Tomcat的lib目录下
maven的jar包与tomcat共享
java - 【曹工杂谈】Maven和Tomcat能有啥联系呢,都穿打补丁的衣服吗 - 个人文章 - SegmentFault 思否
Java -jar启动服务与Tomcat服务器上部署JAR之间的区别_jar运行和tomcat部署区别-CSDN博客
[BYD史前大坑]MAVEN与Tomcat的关系

通过这种方式启动的tomcat和maven可以说是一点关系都没有

构建过程中生成的输出文件,通常是Jar、War、Ear等格式的文件。这些文件包含了项目的代码、资源以及依赖的Jar包,它们是项目构建的结果,可以被部署到服务器或应用到其他项目中
工件是Maven项目构建的最终产物,它包含了项目的代码、资源文件以及所有传递性依赖(即项目直接依赖的库以及这些库所依赖的其他库)
每个Maven项目可以有一个或多个工件,这取决于项目的打包方式(Packaging)。例如,一个Web应用项目可能会有一个War类型的工件,而一个Java库项目可能会有一个Jar类型的工件
IDEA项目发布中,Web Application:Exploded和Web Application:Archive的详细解释_web application archive-CSDN博客
exploded意味着项目的资源和类文件被展开放置在一个目录结构中,而不是被打包成一个Jar或War文件。这样做的好处是可以方便地进行调试和测试,因为可以直接修改资源文件而不需要重新打包整个应用
能否更改工件的方式?即不是exploded,而是每次必须打包,使其内部自带所依赖的jar包?
不,是如何在服务器部署时进行指定?因为那里是连接maven打出的jar包和Tomcat的,那里指定的是构建 'tomcatTest:Web exploded' 工件

-
JAR:
- JAR(Java Archive)是一种打包Java类文件和相关资源文件的压缩包格式。在Maven中,JAR通常用于打包Java库或应用程序。
-
Web 应用程序:展开型(Web Application: Exploded):
- 这是一个展开的Web应用程序,其中包含所有必要的文件和资源,但没有被打包成一个WAR文件。这种形式的部署允许在开发过程中进行快速迭代和测试,因为不需要重新打包应用程序。
-
Web 应用程序:归档型(Web Application: Archive):
- 这是一个打包好的Web应用程序,通常以WAR(Web Application Archive)格式存在。WAR文件是一个压缩包,包含了Web应用程序的所有文件和资源,以及所有必要的依赖库。
-
归档(Archive):
- 归档通常指的是WAR或EAR文件,它们是打包好的应用程序,包含了运行应用程序所需的所有文件和资源。归档文件中是否包含第三方Jar包取决于项目的依赖管理和打包配置。如果Maven配置正确,归档文件应该包含所有必要的依赖。




终于!!!!

使用 HS512 算法时,密钥的大小必须至少为 512 位(即 64 字节)。当前使用的密钥长度为 32 位(4 字节),这不符合 RFC 7518 的要求。

这四种方式有什么区别?

这里能否从cookie中取得用户名?cookie和token,和session什么关系?
Cookie 中存储的是 Token,而不是用户名。Token 是一个加密字符串,用于验证用户的身份。
如果你需要从 Cookie 中获取用户名,可以先从 Cookie 中获取 Token,然后通过 Token 解析出用户名
Cookie:客户端存储的小型数据片段,通常用于保存会话标识符(如 Token)。
Token:一种加密字符串,用于验证用户的身份。通常存储在 Cookie 或本地存储中。
Session:服务器端存储的用户会话数据。Session 通常与 Cookie 结合使用,Cookie 中存储的 Token 用于标识用户的会话。
就是说cookie是客户端存储的,里面包含着各种信息,其中一种关键的标识用户信息的就是token
Cookie cookie = new Cookie("sso-token",token);
对于token来说,相关信息是由加密算法进行加密后存储的,而处理完后的token等是以键值对,json格式存储在cookie当中的,如这里就是把token以名称sso-token进行对应
然后Session就是服务端存储的
客户端发来的请求当中自动包含cookie
Token当中能否存储多个字段的数据?如果能,那么最后解析时如何进行区分?
JWT(JSON Web Token)可以存储多个字段的数据。每个字段称为一个声明(claim),可以是标准声明(如 sub、exp、iat 等)或自定义声明
如果是自定义的,就直接用get的方法,以键值对的形式获取即可
如何在界面显示用户的cookie在当前所剩的有效时间
logger.info("匹配到了用户名且密码正确,生成token"); String token = jwtUtil.generateToken(username); logger.info("生成的token为: "+token); Cookie cookie = new Cookie("sso-token",token); cookie.setPath("/"); cookie.setMaxAge(3600); response.addCookie(cookie);
能否在前端实时更新这个时间?



为什么在loginServlet当中设置了request的maxAge,但是到home.jsp时,从request当中获取的maxAge为null?
这通常是因为 request 对象的生命周期较短,仅在一次请求-响应周期内有效。当用户从 LoginServlet 跳转到 home.jsp 时,request 对象已经重新创建,之前的属性不再存在。
解决方案:
使用 session 对象来存储 maxAge,因为 session 对象的生命周期较长,可以在多次请求之间共享数据。
在 LoginServlet 中将 maxAge 存储到 session 中。
在 home.jsp 中从 session 中获取 maxAge。

这个cookie是保存多久?保存到哪?保存到什么时候?在这个home.jsp页面的时候,点击web1.jsp时,request是否还会附带cookie?为什么会直接返回到index.jsp重新登录?
当点击web1.jsp会发生什么?发送的request是什么,有什么信息?如何进行调试查看?
相关文章:
11.14【JAVA EXP3】【DEBUG】
比较疑惑的一点是当前页面(资源的url)与请求的url? 请求的url由webService接收,servelt当中也可以发送出这个url 进行页面跳转,是跳转到某个Jsp页面,这个页面的url是在哪里定义的? 在Jsp打印信息,这个报…...
UE5 和 UE4 中常用的控制台命令总结
调用控制台 按下键盘上的 ~ 键可以调用控制台命令。 技巧 使用键盘的 ↑ 键可以查看之前输入过的指令。控制台指令并不需要打全名,输入空格后跟随指令的部分字符可以进行模糊搜索。按下 Ctrl Shift , 打开 GPUProfile 面板。 命令如下: 调试类 s…...
MR30分布式IO模块赋能喷水织机
纺织行业作为我国传统支柱产业,历经数千年的演变,如今仍面临着诸多困境,在纺织行业中,每一次技术的飞跃都是对行业边界的勇敢探索。在纺织行业,喷水织机作为关键生产设备,其性能直接影响到产品质量和产能。…...
C++中的封装性
定义: 封装性: 1.将属性(成员变量)和行为(成员函数)作为一个整体,表现在生活中的事物 2.将属性和行为加以权限控制 (将事物的属性(成员变量)和行为&#…...
PyTorch 深度学习框架简介:灵活、高效的 AI 开发工具
PyTorch 深度学习框架简介:灵活、高效的 AI 开发工具 PyTorch 作为一个深度学习框架,以其灵活性、可扩展性和高效性广受欢迎。无论是在研究领域进行创新实验,还是在工业界构建生产级的深度学习模型,PyTorch 都能提供所需的工具和…...
leetcode-22.括号生成
暴力 感谢分享这个思路和算法。生成括号的问题可以通过生成所有可能的括号序列并验证其有效性来解决。以下是对该思路的详细解释和实现: 思路 生成所有可能的序列: 使用递归生成所有长度为 2n 的括号序列。在每个位置可以选择放置 ( 或 )。 验证序列的…...
devops-Dockerfile+Jenkinsfile方式部署Java前后端应用
文章目录 概述部署前端Vue应用一、环境准备1、Dockerfile2、.dockerignore3、nginx.conf4、Jenkinsfile 二、Jenkins部署1、新建任务2、流水线3、Build Now 构建 & 访问 Springboot后端应用1. 准备工作2. 创建项目结构3. 编写 Dockerfile后端 Dockerfile (backend/Dockerfi…...
【Apache Paimon】-- 4 -- Flink 消费 kafka 数据,然后写入 paimon
目录 1、本地开发环境 2、kafka2paimon 实现流程 3、代码实现 3.1、项目名称 3.2、项目结构 3.3、Pom.xml 和 log4j.properties 文件 3.4、代码核心类 3.4.1、入口类:Kafka2PaimonDemo.java 3.4.2、参数解析类 3.4.2.1、JobParameterUtil.java( flink job schedule…...
【成功解决】:VS2019(Visual Studio 2019)遇到E2870问题:此配置中不支持 128 位浮点类型
起因:项目中需要用json来操作数据,就引了cJSON库(cJSON.h和cJSON.c文件),但是发现编译报错如下 E2870 此配置中不支持 128 位浮点类型 test0 ...\usr\include\x86_64-linux-gnu\bits\floatn.h 75 然后先新建了个工程来检查问题(甚至在这之前还以为是cjson…...
什么是TCP的三次握手?
TCP的三次握手:深入理解建立可靠连接的过程 引言 在计算机网络中,传输控制协议(TCP)是确保数据可靠传输的核心协议之一。TCP通过三次握手机制来建立一个稳定的、双向的连接,这对于确保数据的完整性和顺序至关重要。本…...
SQL教程(2):SQL基础语法及用途
在上一篇文章中,我们介绍了 SQL(结构化查询语言)的基本概念,以及它在用户研究中的重要作用。今天,我们将深入了解 SQL 的基本语法,并通过实际应用场景帮助你更好地理解如何使用 SQL 提取和分析数据。对于刚…...
在Ubuntu22.04 jammy下用qemu模型riscv32环境装鸿蒙(待续)
在使用实体ESP32C3 安装鸿蒙失败后,就是这个:完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)-CSDN博客转向用qemu模拟环境装鸿蒙 学习手册riscv32_virt/README_zh.md OpenHar…...
C++:基本-union是没有构造函数和析构函数的
今天发现当我在union中包含了多个结构体时,结构体有默认构造函数时,编译报错。 问题点: union不支持构造函数和析构函数union中的元素本身也是不支持构造函数和析构函数的。包含union的结构体也不支持构造函数和析构函数。 出错代码如下&a…...
报错 JSON.parse: expected property name or ‘}‘,JSON数据中对象的key值不为字符串
报错 JSON.parse: expected property name or ‘}’ 原因 多是因为数据转换时出错,可能是存在单引号或者对象key值不为string导致 这里记录下我遇见的问题(后端给的JSON数据里,对象key值不为string) 现在后端转换JSON数据大多…...
LeetCode 热题 100_旋转图像(20_48_中等_C++)(原地旋转;翻转)
LeetCode 热题 100_旋转图像(20_48) 题目描述:输入输出样例:题解:解题思路:思路一(原地旋转):思路二(翻转): 代码实现(思路…...
mysql查询所有用户及删除用户
查询用户 select user, host, password_expired from mysql.user;删除用户 DROP USER [username]localhost ;刷新权限 FLUSH PRIVILEGES;查询所有用户/账号设置/日志/开启日志 select user,host,password_expired,password_last_changed,password_li…...
Vue 鼠标滚轮缩放图片的实现
wheel"handleZoom" 监听鼠标滚轮事件 event.deltaY < 0 代表向上滚动 event.deltaY > 0 代表向下滚动 使用computed处理scale比例的变化 const imageStyle computed(() > ({ transform: translate(-50%, -50%…...
全景图 与 6面图转换
目录 全景图转6面图: 6面图转全景图 全景图转6面图: https://github.com/springcheese/panoramic_to_cubemap_generation # Necessary Imports import math import argparse import numpy as np from PIL import Image# Dictionary for CUBEMAP FACES…...
深入浅出:PHP 文件操作
文章目录 引言文件的基本操作打开文件读取文件逐行读取读取整个文件 写入文件追加写入覆盖写入 关闭文件 文件和目录的管理检查文件或目录是否存在创建和删除文件创建和删除目录复制和移动文件 处理文件权限设置文件权限获取文件权限 处理文件属性获取文件大小获取文件最后修改…...
116. UE5 GAS RPG 实现击杀掉落战利品功能
这一篇,我们实现敌人被击败后,掉落战利品的功能。首先,我们将创建一个新的结构体,用于定义掉落体的内容,方便我们设置掉落物。然后,我们实现敌人死亡时的掉落函数,并在蓝图里实现对应的逻辑&…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...
Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...
