当前位置: 首页 > news >正文

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' 工件

  1. JAR

    • JAR(Java Archive)是一种打包Java类文件和相关资源文件的压缩包格式。在Maven中,JAR通常用于打包Java库或应用程序。
  1. Web 应用程序:展开型(Web Application: Exploded)

    • 这是一个展开的Web应用程序,其中包含所有必要的文件和资源,但没有被打包成一个WAR文件。这种形式的部署允许在开发过程中进行快速迭代和测试,因为不需要重新打包应用程序。

  1. Web 应用程序:归档型(Web Application: Archive)

    • 这是一个打包好的Web应用程序,通常以WAR(Web Application Archive)格式存在。WAR文件是一个压缩包,包含了Web应用程序的所有文件和资源,以及所有必要的依赖库。

  1. 归档(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面图&#xff1a; 6面图转全景图 全景图转6面图&#xff1a; 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 实现击杀掉落战利品功能

这一篇&#xff0c;我们实现敌人被击败后&#xff0c;掉落战利品的功能。首先&#xff0c;我们将创建一个新的结构体&#xff0c;用于定义掉落体的内容&#xff0c;方便我们设置掉落物。然后&#xff0c;我们实现敌人死亡时的掉落函数&#xff0c;并在蓝图里实现对应的逻辑&…...

【批处理脚本】更改Windows系统中的 hosts 解析文件

概述 作用 修改 Windows 系统中的 hosts 文件&#xff0c;可以实现 插入 或 删除 条目。该脚本允许用户以管理员权限执行&#xff0c;将特定的域名解析到指定的 IP 地址 应用场景 非常适用于需要频繁或批量修改 hosts 文件的场景&#xff1a; 屏蔽网站、域名重定向、DNS 污染防…...

fastDFS

docker 部署fastDFS docker pull delron/fastdfs docker-compose.yml version: 3services:fastdfs_tracker:image: delron/fastdfs:latestcontainer_name: trackerhostname: trackernetwork_mode: hostports:- "22122:22122"volumes:- ./data/tracker:/var/fdfsco…...

【Linux】存储

声明&#xff1a;以下内容均来学习自《Linux就该这么学》一书 Linux系统中的一切文件都是从“根(/)”目录开始的&#xff0c;并按照文件系统层次化标准&#xff08;FHS&#xff09;采用树形结构来存放文件&#xff0c;以及定义了常见目录的用途。此外&#xff0c;Linux系统中的…...

hadoop单机安装

步骤 1:安装 Java 安装 OpenJDK bash sudo yum install -y java-1.8.0-openjdk 验证 Java 安装 bash java -version 输出类似以下内容表示成功: arduino openjdk version “1.8.0_xxx” 步骤 2:下载 Hadoop 下载 Hadoop 安装包 前往 Hadoop 官方下载页面,获取最新稳…...

产品批量分类设置——未来之窗行业应用跨平台架构

一、批量统计分类 提高效率 节省时间&#xff1a;当商品数量庞大时&#xff0c;手动逐个修改商品分类是一项极其耗时的任务。例如&#xff0c;一个电商平台有数千种商品&#xff0c;如果手动操作&#xff0c;可能需要花费数天甚至数周的时间来完成分类转移。而批量设置功能可以…...

2024年中国各省份碳相关投资分析:区域差异与未来趋势

随着中国“双碳”目标的推进&#xff0c;各省份的碳相关投资逐渐成为推动绿色经济转型的关键力量。2024年&#xff0c;各地的双碳项目进入了快速发展阶段&#xff0c;尤其是在清洁能源、绿色技术和碳捕集领域。本文将分析中国各省份在碳减排、碳中和目标实现过程中的投资重点和…...

【六足机器人】03步态算法

温馨提示&#xff1a;此部分内容需要较强的数学能力&#xff0c;包括但不限于矩阵运算、坐标变换、数学几何。 一、数学知识 1.1 正逆运动学&#xff08;几何法&#xff09; 逆运动学解算函数 // 逆运动学-->计算出三个角度 void inverse_caculate(double x, double y, …...

路由VueRouter的基本使用

1.下载VueRouter到当前工程。 vue2&#xff1a;VueRouter3.x Vuex3.x。 vue3&#xff1a;VueRouter4.x Vuex4.x。 在终端使用命令&#xff1a; year add vue-router3.6.5 2.引入。 import VueRouter from vue-router 3,安装注册。 Vue.use(VueRouter) 4…...

Guiding a Diffusion Model with a Bad Version of Itself

Guiding a Diffusion Model with a Bad Version of Itself Abstract1. Introduction2. Background3. Why does CFG improve image quality?Score matching leads to outliers.CFG 消除异常值Discussion 4 Our method Abstract 在图像生成扩散模型中&#xff0c;主要关注的轴心…...

快速上手!低功耗Air724UG模组软件指南:FTP示例

Air724UG模组集成了高性能处理器和丰富的外设接口&#xff0c;支持多种通信协议&#xff0c;包括FTP&#xff08;文件传输协议&#xff09;。通过Air724UG模组&#xff0c;开发者可以轻松实现设备的远程文件管理功能。一起接着看下去吧&#xff01; 一、简介 FTP&#xff08;…...