Java网络开发(Tomcat)——遇到的 bug 汇总(持续更新):bug:

news2024/12/26 10:49:29

目录

  • 引出:bug::bug::bug:
  • Tomcat开发的bug汇总
    • session不能转换成String类型
    • 在servlet的if处理流程中,没有加return
    • 后端传给jsp的数据,前端jsp不显示
    • jsp的包没有导,用foreach方法的时候报错
    • jsp的forEach方法报错
    • jsp用foreach的时候,没有生成首行一段话
    • 项目启动就报错----@WebServlet()路径配置的问题
  • 总结

引出🐛🐛🐛

java的web开发,涉及到前端后端各种交互,路径的转发,重定向等带来的问题,以及需要配置xml文件,导包等很多问题,本文尝试总结在Java网络开发中遇到的bug


Tomcat开发的bug汇总

session不能转换成String类型

java.lang.ClassCastException: org.apache.catalina.session.StandardSessionFacade cannot be cast to java.lang.String

保存到session的时候,不小心把session存进了session里,然后拿的时候用(String)类型转换

    // 验证码存到session空间中
    HttpSession session = req.getSession();
    session.setAttribute("yzm", session);



    // +++++判断验证码是否正确
    HttpSession session = req.getSession();
    // 从session中获取验证码
    String yzm = (String)session.getAttribute("yzm");

在这里插入图片描述

在servlet的if处理流程中,没有加return

问题描述:

如果在servlet中,需要if处理的业务流程,没有加return,通常会引起其他错误,因为没有return,程序会继续往下执行;如下图的例子,这里用户名密码输入错误,没有加return,导致即使非法用户也能登陆进入系统。

在这里插入图片描述

后端传给jsp的数据,前端jsp不显示

问题描述:

后端传给jsp的数据,前端jsp没有显示出来,原因是官方生成的web.xml文件版本低,很多功能不支持,需要更换成下面这种

在这里插入图片描述

在这里插入图片描述

web.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

jsp的包没有导,用foreach方法的时候报错

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag

问题描述:

在jsp文件中,如果注释掉foreach部分的代码,前端jsp文件就能正常进入,也能显示从后端拿到的信息;

但是如果加上foreach部分的代码,就报错,后台的错误指向了servlet的转发部分;但其实是能进到这里的,所有这个问题查了好久,以为是req的问题,后来以为是foreach语法写错的问题;

最后突然想到,可能是xml包没导,最后补充了jsp相关的包,问题解决。

req.getRequestDispatcher("/news/list.jsp").forward(req, resp);

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

jsp相关的包:

  <!--      jsp导包-->
  <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.3</version>
    <!--          加provided-->
    <scope>provided</scope>
  </dependency>

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
  </dependency>

  <dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
  </dependency>

jsp的forEach方法报错

org.apache.jasper.JasperException: 在 [57] 行处理 [/news/list.jsp] 时发生异常

语法错误,多打印了一个h

在这里插入图片描述

jsp用foreach的时候,没有生成首行一段话

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

问题描述:

前端jsp能拿到后端发来的数据,但是没法进入forEcah方法中,不生效;

在这里插入图片描述

项目启动就报错----@WebServlet()路径配置的问题

(1)@WebServlet(value = “/us”) 中反斜杠 / 没有写;

(2)两个Serlet 指向同一个路径;

(3)DBUtils里面的静态方法出问题;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


总结

🐛 bug不可怕,找到它并消灭就好了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/600096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python免费软件:提高工作效率的首选

Python免费软件&#xff1a;提高工作效率的首选 Python作为一种易于上手的编程语言&#xff0c;在业界广为流传。而随着Python的发展&#xff0c;也催生了相应的一些免费软件&#xff0c;这些软件能够让用户更好地利用Python编程语言&#xff0c;提高工作效率&#xff0c;创造…

数据存储云安全的 5 大支柱

与任何数据存储系统一样&#xff0c;云也存在相当多的安全风险。领导者不应争论云本身安全或不安全的方式&#xff0c;而应质疑他们是否安全地使用云。 虽然云安全采用组织和云提供商之间的责任共担模式&#xff0c;但归根结底&#xff0c;云环境面临的最大风险是解决方案的错…

对数组中的所有元素进行限值指定的最小值和最大值:超过最大值的元素,则改写为最大值小于最小值的元素,则改写为最小值numpy.clip()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 对数组中的所有元素进行限值 指定的最小值和最大值&#xff1a; 超过最大值的元素&#xff0c;则改写为最大值 小于最小值的元素&#xff0c;则改写为最小值 numpy.clip() [太阳]选择题 请问…

大数据Doris(三十二):HDFS Load和Spark Load的基本原理

文章目录 HDFS Load和Spark Load的基本原理 一、HDFS Load 二、 Spark Load的基本原理 HDFS Load和Spark Load的基本原理 一、HDFS Load HDFS Load主要是将HDFS中的数据导入到Doris中&#xff0c;Hdfs load 创建导入语句&#xff0c;导入方式和Broker Load 基本相同&#…

(字符串 ) 剑指 Offer 05. 替换空格 ——【Leetcode每日一题】

❓剑指 Offer 05. 替换空格 难度&#xff1a;简单 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成 “%20”。 示例 1&#xff1a; 输入&#xff1a;s “We are happy.” 输出&#xff1a;“We%20are%20happy.” 限制&#xff1a; 0 < s 的长度 < 10000 …

第四章 Electron 使用SQLite3数据库

一、SQLite是什么 &#x1f447; &#x1f447; &#x1f447; SQLite是一种嵌入式关系型数据库管理系统&#xff0c;是一个零配置、无服务器的、自给自足的、事务性的SQL数据库引擎。SQLite是一个轻量级的数据库&#xff0c;可以在各种操作系统上使用&#xff0c;并且支持SQL…

区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测

区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测 目录 区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测效果一览基本介绍模型描述程序设计…

【最小生成树模型】

最小生成树&#xff08;Minimum Spanning Tree&#xff09;模型原理与应用 引言 最小生成树&#xff08;Minimum Spanning Tree&#xff0c;简称MST&#xff09;是图论中的经典问题之一&#xff0c;它在实际应用中有着广泛的应用。本文将介绍最小生成树模型的原理和应用&…

导致无人机倾斜摄影免像控点三维重建中出现模型高程偏差大原因及解决方法探讨

导致无人机倾斜摄影免像控点三维重建中出现模型高程偏差大原因及解决方法探讨 无人机倾斜摄影是一种高效的三维测量技术&#xff0c;可用于建筑物、地形和基础设施等场景的快速、精确测量。然而&#xff0c;在进行无人机倾斜摄影时&#xff0c;出现模型高程偏差大的问题是很常…

梅西生涯数据管理系统(Python+数据库)

文章目录 前言MySQL部分1. 导入数据2. 演示说明 Python部分1. 连接数据库2. 登录界面3. 注册4. 主界面5. 查询用户信息6. 修改密码7. 梅西生涯数据分析8. 主函数 尾声 前言 用 Python MySQL 实现简单的数据分析系统&#xff0c;一起来看看吧&#xff01; 本篇博客主要分为两…

Protobuf快速入门

Protobuf入门 Protobuf介绍 Protobuf (Protocol Buffers) 是谷歌开发的一款无关平台&#xff0c;无关语言&#xff0c;可扩展&#xff0c;轻量级高效的序列化结构的数据格式&#xff0c;用于将自定义数据结构序列化成字节流&#xff0c;和将字节流反序列化为数据结构。所以很…

chatgpt赋能python:Python关联规则——挖掘数据中的隐藏关系

Python关联规则——挖掘数据中的隐藏关系 在数据分析和挖掘中&#xff0c;我们经常需要找到数据集中的关联规则&#xff0c;以便更好地理解数据背后的隐藏关系和趋势。Python关联规则是一种经典的关联规则挖掘算法&#xff0c;它能够识别和发现数据中的有意义的关联性&#xf…

延迟队列的三种实现方案

延迟任务 定时任务&#xff1a;有固定周期的&#xff0c;有明确的触发时间延迟队列&#xff1a;没有固定的开始时间&#xff0c;它常常是由一个事件触发的&#xff0c;而在这个事件触发之后的一段时间内触发另一个事件&#xff0c;任务可以立即执行&#xff0c;也可以延迟 应用…

chatgpt赋能python:Python关联性分析:介绍及应用案例

Python 关联性分析&#xff1a;介绍及应用案例 在数据分析和机器学习领域中&#xff0c;关联性分析是一种经常被使用的工具。通过分析不同特征之间的相关性&#xff0c;可以获取大量有价值的信息&#xff0c;如客户行为模式、产品关联性等等。Python作为一种高效而简洁的编程语…

SpringCloud(2)

服务拆分和远程调用 任何分布式架构都离不开服务的拆分&#xff0c;微服务也是一样。 2.1.服务拆分原则 这里我总结了微服务拆分时的几个原则&#xff1a; 不同微服务&#xff0c;不要重复开发相同业务微服务数据独立&#xff0c;不要访问其它微服务的数据库微服务可以将自…

【生物力学】《人体骨肌系统生物力学》- 王成焘老师 - 第1章 - 总论

目录回到目录第2章 文章目录 1.1 人体骨肌系统1.1.1 人体骨骼系统1. 骨骼的功能2. 骨骼的构造3. 骨组织的构成1. 骨细胞与骨基质2. 成骨细胞3. 破骨细胞4. 骨原细胞 4. 皮质骨与松质骨的构造1. 皮质骨2. 松质骨 1.1.2 关节与骨连接1. 运动关节2. 局部活动关节3. 微动关节与固定…

chatgpt赋能python:Python中点的SEO

Python中点的SEO 在Python编程中&#xff0c;点&#xff08;.&#xff09;是一个非常重要的语法符号&#xff0c;可以用于访问对象属性、调用方法、导入模块等。但是&#xff0c;在SEO优化中&#xff0c;点也有着特殊的含义。 什么是点的SEO含义&#xff1f; 在URL地址中&am…

chatgpt赋能python:Python关联规则代码:优化你的数据分析策略

Python关联规则代码&#xff1a;优化你的数据分析策略 数据分析是当今商业竞争中的重要环节之一。随着数据量的不断增长&#xff0c;为了更好地发现数据之间的关系和规律&#xff0c;数据分析师需要采用一些有效的工具和技术。Python是一种强大的编程语言&#xff0c;可以用于…

白天过节,晚上了解了下 Threejs3D

文章目录 I. 介绍Three.js 3DA. 什么是Three.jsB. Three.js的历史C. Three.js的应用领域 II. 开始使用Three.js 3DA. 安装和引入Three.jsB. 创建Three.js场景C. 添加3D对象到场景D. 控制相机和灯光E. 渲染场景 III. Three.js 3D中的基本概念A. 坐标系统和变换B. 材质和纹理C. 几…

分布式存储Ceph的部署及应用(创建MDS、RBD、RGW 接口)

目录 一、存储基础1.1 单机存储设备1.2 单机存储的问题 二、分布式存储&#xff08;软件定义的存储 SDS&#xff09;2.1 分布式存储的类型 三、Ceph 简介3.1 Ceph 优势3.2 Ceph 架构3.3 Ceph 核心组件3.4 Pool、PG 和 OSD 的关系3.5 OSD 存储后端3.6 Ceph 数据的存储过程3.7 Ce…