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 实现击杀掉落战利品功能
这一篇,我们实现敌人被击败后,掉落战利品的功能。首先,我们将创建一个新的结构体,用于定义掉落体的内容,方便我们设置掉落物。然后,我们实现敌人死亡时的掉落函数,并在蓝图里实现对应的逻辑&…...
5分钟搞定专业网络拓扑图:easy-topo终极使用指南
5分钟搞定专业网络拓扑图:easy-topo终极使用指南 【免费下载链接】easy-topo vuesvgelement-ui 快捷画出网络拓扑图 项目地址: https://gitcode.com/gh_mirrors/ea/easy-topo 还在为绘制复杂的网络架构图而头疼吗?网络拓扑图是网络工程师、系统管…...
深度解析AzurLaneAutoScript:基于图像识别与智能调度的自动化引擎架构设计
深度解析AzurLaneAutoScript:基于图像识别与智能调度的自动化引擎架构设计 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoSc…...
为什么mob成为远程团队编程的首选工具?深度解析
为什么mob成为远程团队编程的首选工具?深度解析 【免费下载链接】mob Tool for smooth git handover. 项目地址: https://gitcode.com/gh_mirrors/mo/mob 在当今远程协作成为常态的时代,高效的团队编程工具变得至关重要。mob作为一款专为平滑Git交…...
如何用MediaCrawler实现7大平台数据采集与追踪:从零到一的完整实战指南
如何用MediaCrawler实现7大平台数据采集与追踪:从零到一的完整实战指南 【免费下载链接】MediaCrawler 小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 &#x…...
百考通AI:以“需求导向+结构化生成”为核心,让调研工作更高效省心
在学术研究、市场调研、用户反馈收集等场景中,一份逻辑清晰、针对性强的问卷是获取有效数据的核心前提,却也让无数从业者倍感头疼:从明确调研目的到设计问题逻辑,从匹配目标受众到控制问卷长度,繁琐的流程常常耗费大量…...
机械工程论文降AI工具免费推荐:2026年机械工程毕业论文降AI知网维普亲测4.8元达标完整指南
机械工程论文降AI工具免费推荐:2026年机械工程毕业论文降AI知网维普亲测4.8元达标完整指南 帮室友处理过机械工程论文降AI,前前后后试了四款工具,最后固定在嘎嘎降AI(www.aigcleaner.com)。 4.8元,达标率…...
Perplexity数学知识查询稀缺资源包(限时开放48小时):含12类经典数学场景Prompt+错误模式对照表+自动校验脚本
更多请点击: https://intelliparadigm.com 第一章:Perplexity数学知识查询 Perplexity 是衡量语言模型预测能力的核心指标,其数学定义源于信息论中的交叉熵。它本质上是模型对测试语料困惑程度的指数化表达,值越低表示模型对序列…...
【职场】为什么越努力的人,在职场死得越惨?
为什么越努力的人,在职场死得越惨? ——没有人告诉你,努力本身是一种暴露。一、先说一个你亲眼见过,但从没想明白的现象 你身边一定有这样的人: 工作最拼的那个,最后被裁了。 加班最多的那个,升…...
FalkorDB 的边存储原理:为什么查邻居是 O(degree)?
很多人第一次看到 FalkorDB 的架构时,会有一个疑问:它不用传统 adjacency list(邻接链表),而是用 sparse matrix(稀疏矩阵)维护边,那它到底怎么高效找到某个节点的所有边?…...
告别丢包!手把手教你用Vivado/PLL调优RTL8211的RXC时钟相位(FPGA千兆以太网篇)
FPGA千兆以太网时序优化实战:用PLL驯服RTL8211的RXC时钟相位 当你在调试FPGA与RTL8211千兆以太网PHY芯片的RGMII接口时,是否遇到过这样的场景:硬件连接一切正常,链路也能正常建立,但就是会随机出现数据包丢失或CRC校验…...
