计科web常见错误排错【HTTP状态404、导航栏无法点开、字符乱码及前后端数据传输呈现、jsp填写的数据传到数据库显示null、HTTP状态500】

news2025/1/10 6:08:57

=======web排错记录======

在使用javaweb的过程中会出现的一些错误请在下方目录查找。

目录

错误1:HTTP状态404——未找到

错误2:导航栏下拉菜单无法点开的问题

错误3:字符乱码问题

错误4:jsp网页全部都是???

错误5:修改数据库后网页呈现无变化 

错误6:jsp填写的数据传到数据库显示null

错误7:HTTP状态500-内部服务器错误——javax.servlet.ServletException: Servlet执行抛出一个异常  org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)    filter.EncodeFilter.doFilter(EncodeFilter.java:14)

错误8:HTTP状态500-内部服务器错误——类【???】不是Servlet


错误1:HTTP状态404——未找到

点击功能后登录404错误

一般是这里出错,也就是登录login的servlet,文件是UserLoginServlet

 如图,改为这样就行

错误2:导航栏下拉菜单无法点开的问题

如图,点了导航栏,下拉菜单没弹出,好像被什么挡住

经过一番排查,发现是我之前用了一个jQuery图片轮播插件,引入了它需要的css和js,应该是造成了和原来css和js的冲突

然后我再排查了一下,不是js的问题,就是css冲突,才最终造成我的导航栏弹不开,

我将自己引入的jQuerycss文件夹删了导航栏就可以点开了。

错误3:字符乱码问题

如图,现实菜单栏file→setting→Editour→File Encodings,这里箭头所指的三个地方都改一改

然后我发现还无效

于是我发现了一个新地方,就是File→File Properties→File Encoding,点开后有可能我之前选的是GBK,然后我换成了utf-8,然后乱码问题就解决了

错误4:jsp网页全部都是???

等一下,我的是经过了30分钟,然后就自动恢复了

错误5:修改数据库后网页呈现无变化 

如图,我这里写了7个类别,之前本来有8个类别,被我减掉一个,可是网页还是呈现8个类别,我也不清楚怎么回事,重新新建数据库重新导入sql语句后还会是这样,后面好像过了十分钟左右就变过来了,应该是有延迟,如下图,已变为7个类别

错误6:jsp填写的数据传到数据库显示null

如图,jsp随便填写

 然后我点击提交保存,接着查看数据库这边:

 可以看到这里最后一行,数据全部是null

那么我们来开始排除:

第一步排错:

你找到你对应的那个Dao类,用System.out.print()随便打印出几个,发现箭头所指的方向那里为null,换句话说也就是还没传入数据库的时候你这里就是null

第二步排错:这里sql语句要和数据库列名要对应好

 数据库的列名要对应,例如我后来发现我这里的vehicleowner由于之前自己复制粘贴的缘故,少些了一个r,导致它出问题,什么unknown "vehicleowner"什么的,其实就是这里单词没写全

第三步排错【最重要】:

兜兜转转几个小时,才发现是Servlet类那边的数据没有复制过来的问题,即在这里加上这段话就行:也就是下图中try catch那段

 之前参考代码是有这段代码的,中途出了错我就把它注释掉,后来以为没什么用就删掉了,后来复查了几个小时查看原本的资料,才发现最重要的是里面这句

BeanUtils.copyProperties(vehicle, request.getParameterMap());

这句就是把你在jsp填的数据扔到Dao类那边,Dao类是直接面向数据库操作,Dao类会再负责将数据添加进数据库,所以我就缺少了这句代码,导出Dao类一直数据为null,收不到数据

然后发现只用上面这句代码玩不转,还是得外面套上try catch才行,即如下:

try {
            BeanUtils.copyProperties(vehicle, request.getParameterMap());
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

你加这段然后去运行,Dao类那边就有数据,数据库就能正常添加,正确显示数据。

如图,随便写点数据

我的jsp显示登记成功,那么我们去数据库看看

 如图,刚才的数据不再是null,已成功添加进数据库。

错误7:HTTP状态500-内部服务器错误——javax.servlet.ServletException: Servlet执行抛出一个异常  org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    filter.EncodeFilter.doFilter(EncodeFilter.java:14)

很有可能是总共三个地方名称不对应的问题,哪三个地方?

你要注意你的jsp普通类【就是你生成构造函数啊get和set方法那个】Dao类

如下:

比如你jsp的name=ownername,我之前是name=username,然后我改成name=ownername了,但其他两个地方忘了改,造成了网页状态500

所以说比如我这里jsp的这里写的是name=ownername的话,那么你得检查一下你数据库那里是不是一样也是ownername,要一致

然后比如我的ProblemFeedback.java这里面不要忘了改,一样也要是ownername

get和set方法最好重新弄,保持一致

 ProblemFeedback.java其余地方也改成一样

 最后看Dao类,你看我之前说过我原本是name,然后改成ownername,这里忘记改了还是name,那么这里就会显示白色,你看我改为ownername了后

你看就不是白色了,然后你还是看上面那张图,箭头所指,之前由于你根据新建的String ownername重新生成那个getOwnername()方法,那么你这里也要是getOwnername(),我这里是已经改过来的,之前是getName(),现在改成了getOwnername()。

只要这几个地方能对应,就不会出现HTTP状态500-内部服务器错误

错误8:HTTP状态500-内部服务器错误——类【???】不是Servlet

解决:有可能你相对应Servlet差了一个extends HttpServlet,如图,补上extends HttpServlet这两个单词就行

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

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

相关文章

科技云报道:边缘云赛道开启,谁能成为首个“出线”厂商?

科技云报道原创。 每一轮底层技术变革,都会带来全新的商业机遇。随着万物智联时代到来,大量数据产生的源头由传统的中心化向分散数据源变革,越来越多云边协同场景的出现,使得边缘云成为计算领域数据处理的新范式之一。 自2020年…

CHI协议保序之Compack保序

一致性系统中,使用三种保序方式; Completion ack response ⭕Completion acknowledgment: □ 该域段主要是用来, □ 决定 RN 发送的 trans,与其他 RN 发送的命令产生的 SNP 之间的顺序; …

[VUE]Element_UI 实现TreeSelect 树形选择器

文章目录 前言1、安装2、引用3、使用 前言 最近在做一个人员管理系统,在增改用户信息时,可能会设置用户所在的部门,因为部门是多级的,于是想到用Element_UI的TreeSelect组件实现 效果: 1、安装 npm install --save…

蓝桥杯专题-真题版含答案-【牌型种数】【煤球数目】【寒假作业】【奖券数目】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

如何动态修改 spring aop 切面信息?让自动日志输出框架更好用

业务背景 很久以前开源了一款 auto-log 自动日志打印框架。 其中对于 spring 项目,默认实现了基于 aop 切面的日志输出。 但是发现一个问题,如果切面定义为全切范围过大,于是 v0.2 版本就是基于注解 AutoLog 实现的。 只有指定注解的类或…

pytest常用执行参数详解

1. 查看pytest所有可用参数 我们可以通过pytest -h来查看所有可用参数。 从图中可以看出,pytest的参数有很多,下面是归纳一些常用的参数: -s:输出调试信息,包括print打印的信息。-v:显示更详细的信息。…

GAN在图像超分辨领域的应用

本篇博客介绍了对抗生成网络GAN在图像超分辨领域的应用,包括(SRGAN, ESRGAN, BSRGAN, Real-ESRGAN),详细介绍了论文内容,方法,网络结构并对其做了相关总结。相关GAN原理的介绍大家可以查看我之前的几篇博客,链接如下:生…

从用户的角度谈GPT时代技术突破的两大关键逻辑

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

API接口:如何通过使用手机归属地查询

随着手机普及率的不断增加,手机号码的信息查询也成为了一个非常实用的功能。本文将介绍如何通过使用手机归属地查询API接口实现查询手机号码所在地的功能。 首先,我们需要一个可以查询手机号码所在地的API接口。目前市面上有很多免费或付费的API接口可供…

MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点6:MySQL Enterprise Monitor之Query Analyzer

文章目录 MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点6:MySQL Enterprise Monitor之Query AnalyzerMySQL Enterprise Monitor之Query AnalyzerQuery Response Time index (QRTi)例题例题1: Query Analyzer答案与解析1 参考 【免责声明】文章仅供学习交流&#x…

RT1052的GPIO

文章目录 GPIO资源GPIO资料GPIO复用器IOMUXGPIO的控制块 GPIO配置宏定义的使用 GPIO函数使用GPIO_PinRead 函数GPIO_WritePinOutput函数 GPIO资源 图中 P2、P3 和 P6 为 MCU 主 IO 引出口,这三组排针共引出了 97 个 IO 口,另外,通过&#xff…

深度理解BeanFactory和ApplicationContext的区别

BeanFactory和ApplicationContext 接口及其子类图 这是Spring一部分的关系类图,从这个类图我们可以大致看出BeanFactory的和ApplicationContext的关系,BeanFactory是ApplicationContext的基类,BeanFactory所拥有的功能,ApplicationContext都拥有, 不仅如此,ApplicationContext还…

【Docker 的数据管理和网络通信】

目录 一、Docker 的数据管理1.数据卷2.数据卷容器 二、容器互联(使用centos镜像)三、Docker 镜像的创建1.基于现有镜像创建(1)首先启动一个镜像,在容器里做修改(2&#x…

C# Yolo+Onnx 号牌识别

参考 https://github.com/missxingwu/net_yolov5_plate https://github.com/ivilson/Yolov7net https://github.com/we0091234/Chinese_license_plate_detection_recognition 效果 项目 VS2022.net 4.8OpenCvSharp4Microsoft.ML.OnnxRuntime 部分代码 using System; using …

xDS解决的是什么样子的痛点

xDS基本概念 Istio发现模型 xDS是什么 xDS是一类发现服务的总称,包含LDS, RDS, CDS, EDS以及SDS。 Envoy通过xDS API可以动态获取Listener(监听器),Route(路由)&#x…

Python 集合 union()函数使用详解,Python合并集合

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 union函数使用详解 1、合并多个集合2、合并其他类型2.1、合并字符串2.2、合并列表…

性能测试Ⅲ

JMeter里面使用后端监听器,结合influxdb的时序数据库以及grafana可以打造性能测试的平台 后端监听器:把JMeter执行过程中的数据写到influxDB的时序数据库 influxD:时序数据库,用来存储JMeter发送请求的数据 Grafana :从…

k8s容器入门

一、k8s入门 1.什么是容器 降低虚拟机造成的物理主机资源浪费,提高物理主机的利用率,并能提供像虚拟机一样狼好的应用程序隔离运行环境,人们把这种轻量型的虚拟机,称为容器。 2. 容器的管理工具 主要用于容器的创建、启动、关…

优化transformer

使用transformer而导致的时间长,可能会由于self-attention计算Query和key的值才导致的时间长,也可能会因为feed forward中的计算导致时间长。这里我们只针对第一种情况下进行优化。 第一种情况:有些问题,我们可能不需要看整个句子…

Linux安装JDK、Redis、MySQL、RabbitMQ、Minio、Nginx.......

文章目录 一、环境准备二、安装JDK三、安装MySQL四、安装Redis三、安装RabbitMQ四、安装Minio五、安装Nginx特殊情况处理Centos7挂载磁盘服务器时间同步MySQL数据库时间同步安装解压软件修改数据库SQL模式 一、环境准备 下载镜像源 中科大镜像源下载至/opt目录下修改yum源为中…